• [^] # Re: Beaucoup de boulot

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Linux pour Workgroups 3.11, le noyau prêt pour le bureau. Évalué à 6.

    Oué, on appelle cela les Here Document ou heredoc, il y a moyen de faire des trucs passionnants avec, comme la possibilité d'inclure des fichiers complets à l'intérieur même de scripts !

    Ce script complexe :

    #! /bin/bash
    function xecho {
     /bin/echo -e "\n--- $@"
     $@
    }
    lui="moi"
    # interpréter stdin
    <<EOF cat > /tmp/file0
    Bonjour, $(whoami) c'est ${lui}, et $((0 + 0)) égale la tête à toto !
    EOF
    xecho cat /tmp/file0
    # ne pas interpréter stdin
    <<\EOF cat > /tmp/file1
    Bonjour, $(whoami) c'est ${lui}, et $((0 + 0)) égale la tête à toto !
    EOF
    xecho cat /tmp/file1
    # ne pas tenir compte des tabulations
    if true
    then
     <<-EOF cat > /tmp/file2
     Bonjour, $(whoami) c'est ${lui}, et $((0 + 0)) égale la tête à toto !
     EOF
    fi
    xecho cat /tmp/file2
    # faire des choses simples de manière compliquée
    grep /proc/cpuinfo -f - <<\EOF | sed -e 'ss *$ss' | sort -r | uniq > /tmp/hw
    model name
    cpu MHz
    EOF
    # s'amuser à obfusquer le code
    xargs grep <<\EOF | sed 'ss:\( *\)s1円\t: s' >> /tmp/hw
    MemTotal
    /proc/meminfo
    EOF
    xecho cat /tmp/hw
    # pire encore, écrire un here document dans un here document
    <<\NULL cat > /tmp/script
    <<EOF cat > /tmp/sw
    $(uname -sro)
    $(gnome-shell --version)
    EOF
    NULL
    # après l'UUOC, l'Useless Use of Standard IO
    <<EOF sh
    $(cat /tmp/script)
    EOF
    xecho cat /tmp/sw
    # soyons fou
    <<\EOF base64 -d | gzip -d | rot13 42 | caesar > /tmp/question
    H4sIANCeJ1IAA22Oyw3CMBBE71QxWCg3KrAQtSR4UVaEXTBrgZQgUQpXTlzowJ1QCQ6fG7fRm9HT
    0KpVzAXOKG5ZKD4v9yWcx7HljhCpDtgnOhireASFlQx3mvU/enZYFKCJHaoKoNHo8hUNk1h+GKbv
    oimuDYbhO+AO6zoZYr7tVEIkjAb/af8dCio0eQHuspjVrwAAAA==
    EOF
    xecho . /tmp/question
    <<\COMMENTAIRE
    On peut tricher pour commenter des portions complètes de code, mais c'est sale !
    On peut tricher pour commenter des portions complètes de code, mais c'est sale !
    On peut tricher pour commenter des portions complètes de code, mais c'est sale !
    echo "C'est très très sale !"
    sudo rm -rf /
    COMMENTAIRE
    #EOF

    Donne cela chez moi :

    --- cat /tmp/file0
    Bonjour, illwieckz c'est moi, et 0 égale la tête à toto !
    --- cat /tmp/file1
    Bonjour, $(whoami) c'est ${lui}, et $((0 + 0)) égale la tête à toto !
    --- cat /tmp/file2
    Bonjour, illwieckz c'est moi, et 0 égale la tête à toto !
    --- cat /tmp/hw
    model name : AMD FX(tm)-8350 Eight-Core Processor
    cpu MHz : 4000.000
    MemTotal : 32846608 kB
    --- cat /tmp/sw
    Linux 3.11.0-4-generic GNU/Linux
    GNOME Shell 3.9.90
    --- . /tmp/question
    terminer ? 
    il faut répondre oui
    terminer ? non
    il faut répondre oui
    terminer ? oui
    à bientôt !
    

    ce commentaire est sous licence cc by 4 et précédentes