Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

Substitution de commande

La substitution de commande nous permet d'utiliser la sortie d'une commande comme extension :



[moi@linuxbox ~]$ écho $(ls)

Documents de bureau ls-output.txt Musique Images Modèles publics Vidéos

[moi@linuxbox ~]$ écho $(ls)

Documents de bureau ls-output.txt Musique Images Modèles publics Vidéos


L'un de mes favoris ressemble à ceci :



[moi@linuxbox ~]$ ls -l $(quel cp)

-rwxr-xr-x 1 racine racine 71516 2007-12-05 08:58 /bin/cp

[moi@linuxbox ~]$ ls -l $(quel cp)

-rwxr-xr-x 1 racine racine 71516 2007-12-05 08:58 /bin/cp


Ici, nous avons passé les résultats de quel cp comme argument à la ls commande, obtenant ainsi la liste des cp programme sans avoir à connaître son chemin d'accès complet. Nous ne sommes pas limités à de simples commandes. Des pipelines entiers peuvent être utilisés (seulement une sortie partielle


affiché) :



[moi@linuxbox ~]$ fichier $(ls -d /usr/bin/* | grep zip)

/usr/bin/bunzip2 : lien symbolique vers `bzip2'

/usr/bin/bzip2 : exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.9, supprimé

/usr/bin/bzip2recover : exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.9, supprimé

/usr/bin/funzip : exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.9, supprimé

/usr/bin/gpg-zip : exécutable du texte du script shell Bourne

/usr/bin/gunzip : lien symbolique vers `../../bin/gunzip'

/usr/bin/gzip : lien symbolique vers `../../bin/gzip'

/usr/bin/mzip : lien symbolique vers `mtools'

[moi@linuxbox ~]$ fichier $(ls -d /usr/bin/* | grep zip)

/usr/bin/bunzip2 : lien symbolique vers `bzip2'

/usr/bin/bzip2 : exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.9, supprimé

/usr/bin/bzip2recover : exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.9, supprimé

/usr/bin/funzip : exécutable ELF 32 bits LSB, Intel 80386, version 1 (SYSV), lié dynamiquement (utilise des bibliothèques partagées), pour GNU/Linux 2.6.9, supprimé

/usr/bin/gpg-zip : exécutable du texte du script shell Bourne

/usr/bin/gunzip : lien symbolique vers `../../bin/gunzip'

/usr/bin/gzip : lien symbolique vers `../../bin/gzip'

/usr/bin/mzip : lien symbolique vers `mtools'


Dans cet exemple, les résultats du pipeline sont devenus la liste d'arguments du filet commande.

Il existe une syntaxe alternative pour la substitution de commandes dans les anciens programmes shell qui est également prise en charge dans bash. Il utilise citations en arrière au lieu du signe dollar et des parenthèses :


[moi@linuxbox ~]$ ls -l `quel cp`

-rwxr-xr-x 1 racine racine 71516 2007-12-05 08:58 /bin/cp

[moi@linuxbox ~]$ ls -l `quel cp`

-rwxr-xr-x 1 racine racine 71516 2007-12-05 08:58 /bin/cp


Meilleur système d'exploitation Cloud Computing chez OnWorks :