Пока цикл в Shell

Я хочу сделать оператор while ... loop в моем скрипте Shell, например:

while [ $line < $line_number ]; do
    echo $line
done

Но есть ошибка. Я думаю, что это потому, что я написал это в коде bash. Но мне нужно сделать это в режиме sh. Как мне это сделать? Спасибо!

0
задан 26 February 2014 в 22:54

1 ответ

Необходимо использовать, также

while [ $line -lt $line_number ]; do
    echo $line
done

или

while [[ $line < $line_number ]]; do
    echo $line
done

Disscussion [источник]

Единственный [] совместимые тесты условия оболочки posix.

Дважды [[]] расширение стандарта [] и поддерживаются ударом и другими оболочками (например, zsh, ksh). Они поддерживают дополнительные операции (а также стандарт posix операции). Например: || вместо -o и соответствие regex =~. Более полный список различий может быть найден в разделе руководства удара по условным конструкциям.

Использовать [] каждый раз, когда Вы хотите, чтобы Ваш сценарий был портативным через оболочки. Использовать [[]] если Вы хотите условные выражения, не поддерживаемые [] и не должны быть портативными.

0
ответ дан 26 February 2014 в 22:54

Другие вопросы по тегам:

Похожие вопросы: