Je vais chercher à la viande et les os:utilisation variable de script shell
MY_VAR=6
until [$MY_VAR = 0]
do
dir/dir_$MY_VAR.log
ps | grep "NAME_$MY_VAR.ksh"
check some things
if [results = ok]
echo "program $MY_VAR sucessful"
else
echo "program $MY_VAR failure"
MY_VAR = `expr $MY_VAR - 1`
done
Maintenant, je reçois les erreurs suivantes my_Var pas trouvé et [6: Introuvable, donc je suppose plutôt une erreur noobish . Je pense que la logique est assez juste une simple erreur de syntaxe que je fais quelque part par l'apparence des deux erreurs, je pense que cela pourrait être dans la déclaration.
Je reçois l'erreur MY_VAR--: plus de jetons attendus, pourriez-vous élaborer sur votre solution comme l'utilisation de (()) et [[]] – Jewsef
@Jewsef: Utilisation de quel shell et sur quelle ligne de quelle version de les scripts de ma réponse? Une chose à noter, j'avais changé le cas du nom de la variable, mais je l'ai fait de manière incohérente. Cela a peut-être causé quelques problèmes. Désolé à ce sujet - je l'ai réparé. Dans les doubles crochets Bash et ksh [activer des fonctionnalités supplémentaires] (http://mywiki.wooledge.org/BashFAQ/031). L'utilisation de doubles parenthèses pour les comparaisons numériques vous permet d'utiliser '==' et '>', par exemple, au lieu des '-eq' et' -gt'. Il vous permet également de faire des opérations arithmétiques telles que le décrément '((my_var -))' montré. –
@Jewsef: Je viens de remarquer que le script de votre question manque le 'fi' pour fermer le' if'. J'ai copié votre script dans ma réponse et raté la correction (maintenant corrigé). Cela pourrait être la source de votre erreur. –