Я пытаюсь проверить, если количество аргументов в моем Баше скрипте превышает число 2, а выход с ненулевым статусом выхода, но я получаю следующее сообщение об ошибке:bash- Как проверить, превышает ли количество аргументов определенное число?
unexpected token `newline', conditional binary operator expected
Это мое код:
if [[ #$ > 2 ]]
then
echo "error" 1>&2
exit 1
fi
Это очень просто, но я не могу понять, почему я получаю эту ошибку. Я не должен использовать двойные скобки в выражении if?
У вас есть опечатка; # $ должно быть $ #. Кроме того, я думаю, что для целочисленного сравнения это должно быть '-gt', not>. – Random832
Если вы изменили '# $' на '$ #', ваш тест будет работать - попробуйте. Тем не менее, размещение Sputnick теста внутри арифметических операторов обеспечивает численный тест и будет работать. –
Да, опечатка меня путала, тупая ошибка. Но я заметил, что это работает, если я использую двойные квадратные скобки или двойные круглые скобки, действительно ли имеет значение, что я использую? Я знаю, что круглые скобки предназначены для арифметических операторов, но этот фрагмент кода работает в обоих направлениях. – Bolboa