J'ai un script qui ressemble à ceci:
c=0
for f in */*; do
cp -v "$f" "/myhome/CE$(printf '%0*d' 2 $BATCHNUM)-new-stuctures_extracted/test-$(printf '%0*d' 5 $c)"
c=$((c=c+1))
done
Cependant, l'utilisateur doit fournir un appel variable BATCHNUM et sinon je dois forcer l'arrêt de ce script. Ce serait mieux si je pouvais forcer le script qui appelle ce script à s'arrêter aussi (ou même le script # 1 qui appelle le script # 2 qui appelle ce script).
la source
Pour tester si
BATCHNUM
est défini et quitter s'il ne l'est pas:Si vous souhaitez également rejeter le cas où
BATCHNUM
est vide, utilisez${BATCHNUM:+a}
au lieu de${BATCHNUM+a}
. Pour plus d'informations sur la${VARIABLE+TEXT_IF_NULL}
construction d'expansion des paramètres, voir par exemple le manuel bash .Ne tuez pas le processus parent. Vous ne savez pas quel est le processus parent. Si un script qui appelle celui-ci doit abandonner si ce script échoue, faites-lui vérifier l'état de sortie de ce script. Par exemple, dans le script # 2:
ou utilisez
set -e
pour abandonner le script si une commande renvoie un état d'échec (différent de zéro).la source