Других ответов являются, вероятно, что вы хотите использовать. FYI, вот откуда взялись ваши ошибки.
${postid=41930}
Чтобы назначить 41930 в posted
, просто использовать postid=41930
. Обратите внимание, что вокруг знака равенства нет пробелов!
while ${postid} < 42000;
{} вокруг postid
не являются обязательными; $postid
работает так же хорошо. Вам нужно обернуть это условное расширение в команде, поскольку цикл while не может использовать голые выражения. Что-то вроде while [ $postid < 42000 ];
. Обратите внимание, что в этом случае вы должны иметь пробелы, разделяющие [
и ]
от остальной части выражения.
do
`node title.js ${postid}`
${postid} = ${postid} +1;
Чтобы присвоить значение переменной, bash не допускает пробелов вокруг знака равенства. С пробелами он интерпретирует эту строку, расширяя $postid
и рассматривая это как команду для запуска, с =
в качестве первого аргумента. Используйте postid=$postid + 1;
. Слева нет знака доллара, так как вы не расширяете значение переменной, а присваиваете имя. Справа вам понадобится знак доллара, чтобы получить значение из posted
.
done
Большое спасибо за ваши решения. Я должен использовать vi: set ff = unix. И знаю, что все сработало !!! –