я доберусь до мяса и костей:сценария оболочки переменные использовать
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
Теперь я получаю следующие ошибки my_var не найдена и [6: не нашли, поэтому я предполагаю, довольно noobish ошибки , Я чувствую, что логика достаточно звучит, просто простая синтаксическая ошибка, которую я делаю где-то в результате двух ошибок, которые, я думаю, могут быть в объявлении.
Я получаю сообщение об ошибке MY_VAR--: ожидалось больше токенов, не могли бы вы рассказать о своем решении, таком как использование (()) и [[]] – Jewsef
@Jewsef: использование какой оболочки и на какой строке какой версии сценарии из моего ответа? Одно замечание, я изменил случай с именем переменной, но я сделал это непоследовательно. Возможно, это вызвало некоторые проблемы. Извините, что я исправил это. В двойных квадратных скобках Bash и ksh [включить некоторые дополнительные возможности] (http://mywiki.wooledge.org/BashFAQ/031). Использование двойных скобок для числовых сравнений позволяет использовать, например, '==' и '>' вместо уродливых '-eq' и' -gt'. Он также позволяет выполнять арифметические операции, такие как показание декремент '((my_var -))'. –
@Jewsef: Я только заметил, что в скрипте в вашем вопросе отсутствует 'fi', чтобы закрыть' if'. Я скопировал ваш сценарий в свой ответ и пропустил исправление (теперь исправлено). Это может быть причиной вашей ошибки. –