-c string If the -c option is present,then commands are read from
string.If there are arguments after the string, they are
assigned to the positional parameters, starting with $0.
Exemple:
$ bash -c ls
va lancer bash et exécuter la commande ls.
/bin/sh est généralement un lien symbolique vers un shell.
Comment est-ce différent pour sans -c ? Vous pouvez passer d'un script comme argument, bash myScript mais il va ouvrir myScript et interpréter les commandes. Ce n'est pas le même que bash -c someCommand. Comparer ce qui se passe si vous ne bash ls et bash -c ls par exemple. /bin/sh-c grep "cœurs de processeur" /proc/cpuinfo | uniq | sed -e 's/[^0-9] La commande ci-dessus ne donne pas de résultat souhaité. Pourquoi est-il si? Alors que /bin/sh-c ls | grep c fonctionne très bien. Je ne reçois pas ce comportement étrange. Ce serait formidable si vous pouvez l'expliquer aussi. Je l'ai eu. Il doit être formaté de la chaîne. /bin/sh-c 'grep "$0" /proc/cpuinfo | uniq | sed -e "$1"' "cœurs de processeur" 's/[^0-9]*//g' a fonctionné comme un charme.
De l'homme-page de bash:
Exemple:
va lancer bash et exécuter la commande
ls
./bin/sh
est généralement un lien symbolique vers un shell.-c
?Vous pouvez passer d'un script comme argument,
bash myScript
mais il va ouvrirmyScript
et interpréter les commandes. Ce n'est pas le même quebash -c someCommand
. Comparer ce qui se passe si vous nebash ls
etbash -c ls
par exemple./bin/sh-c grep "cœurs de processeur" /proc/cpuinfo | uniq | sed -e 's/[^0-9] La commande ci-dessus ne donne pas de résultat souhaité. Pourquoi est-il si? Alors que /bin/sh-c ls | grep c fonctionne très bien. Je ne reçois pas ce comportement étrange. Ce serait formidable si vous pouvez l'expliquer aussi.
Je l'ai eu. Il doit être formaté de la chaîne. /bin/sh-c 'grep "$0" /proc/cpuinfo | uniq | sed -e "$1"' "cœurs de processeur" 's/[^0-9]*//g' a fonctionné comme un charme.
OriginalL'auteur