Utilisez cette balise Si votre question porte sur la détermination ou l'utilisation de l'état de sortie (code retour) d'une commande. La syntaxe courante implique le $? variable et les && et || symboles.
en utilisant time sleep 1 rendements: $ time sleep 1 real 0m1.005s user 0m0.001s sys 0m0.001s puis-je utiliser une commande pour imprimer le code de sortie sleepou la commande que je veux exécuter? Quelque chose aime: $ log-exit-code sleep 1 peut-être cela suffit-il? sleep 1 && echo "$?"
Voir les exemples suivants et leurs sorties dans des shells POSIX: false;echo $?ou false || echo 1:1 false;foo="bar";echo $?ou foo="bar" && echo 0:0 foo=$(false);echo $?ou foo=$(false) || echo 1:1 foo=$(true);echo $?ou foo=$(true) && echo 0:0 Comme mentionné par la réponse la plus votée sur /programming/6834487/what-is-the-variable-in-shell-scripting : $? est utilisé pour …
J'ai vu des constructions dans des scripts comme celui-ci: if somevar="$(somecommand 2>/dev/null)"; then ... fi Est-ce documenté quelque part? Comment le statut de retour d'une variable est-il déterminé et comment est-il lié à la substitution de commandes? (Par exemple, pourrais-je obtenir le même résultat avec if echo "$(somecommand 2>/dev/null)"; then?)
Je voudrais avoir la structure de commande suivante: command && check-status | less && followup-command Cela interromprait l'exécution pendant que l'utilisateur interagirait avec less. Comment l'utilisateur peut-il forcer la lesssortie avec un état différent de zéro pour empêcher l' followup-commandexécution? J'utilise actuellement less 458 (POSIX regular expressions)
J'ai un script bash qui simplement docker pousse une image: docker push $CONTAINER_IMAGE:latest Je veux faire une boucle 3 fois lorsque cela échoue. Comment dois-je y parvenir?
Lorsque le code d'état est inutile, existe-t-il de toute façon de construire un pipeline basé sur la sortie de stdout? Je préférerais que la réponse ne traite pas du cas d'utilisation, mais de la question relative à la portée des scripts shell. Ce que j'essaie de faire, c'est de trouver …
Fonctionnement bash -c 'bash -c "echo test1; exit 1;" &> /tmp/x; buildresult=$?; tail -n 100 /tmp/x; exit $buildresult;' entraîne l' test1impression sur la console et l' echo $?impression, 1ce qui, à mon sens, est correct, car la commande doit retourner avec ce que l'intérieur a [b/d]ash -crenvoyé alors que dash …
Est-il possible de conserver le dernier état de sortie de commande ( $?) inchangé après un test? Par exemple, je voudrais faire: command -p sudo ... [ $? -ne 1 ] && exit $? Le dernier exit $?doit retourner le statut de sortie sudo, mais à la place il retourne …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.