4 ответа
Лучший ответ
Все ваше выражение может быть упрощено до:
Это проверяет, равна ли полная сумма аргументов нулю или аргумент (ы) равен «—help». Если любая из этих двух вещей верна, то она переходит к функции , в противном случае выведите «done» и завершите работу.
1
l’L’l
9 Апр 2017 в 18:36
Когда вы выполняете скрипт без параметра, вы получаете ошибку, потому что ваше условие совпадает с пустым символом, см. Ниже —
Как вы можете видеть, что нет никакого значения, чтобы соответствовать.
Когда вы выполните команду ниже в вашем терминале —
Чтобы решить эту проблему, вы можете использовать условие if в начале, чтобы назначить фиктивное значение, если его нет.
VIPIN KUMAR
9 Апр 2017 в 18:16
Попробуй это :-
|| ||
Таким образом, он будет автоматически отображаться, если указан ключ —help или 1.
Я думаю, что $ # создает проблему, так как есть и $ # для первого и второго условий
-1
Shubhraj
9 Апр 2017 в 18:01
Выразите свое состояние следующим образом:
На самом деле, является командой, а следующие элементы в командах могут быть разделены по словам. Если аргумент пуст (или содержит пробелы и не заключен в кавычки), вы можете столкнуться с неожиданностями. Использование и не рекомендуется.
Обратите внимание, что если вы хотите использовать логический оператор (вместо оператора ) перед вашим оператором , вам необходимо заключить вышеуказанные внутренние скобки, иначе оператор приоритет (в сочетании с ленивой оценкой) может дать неверные результаты. Если вы не возражаете против использования специфичного для Bash синтаксиса, вы также можете написать:
Если вы не возражаете против использования специфичного для Bash синтаксиса, вы также можете написать:
Обратите внимание, что в этом случае двойные кавычки не требуются, поскольку конструкция является специальным синтаксисом оболочки, а не командой, а то, что внутри, не подлежит разбиению по словам. Поскольку существует один тест, вам не нужно заключать его в фигурные скобки перед вашим
3
Fred
9 Апр 2017 в 18:07



![Linux - скрипт bash: слишком много аргументов в [test] - question-it.com](http://myeditor.ru/wp-content/uploads/2/9/6/296bff0b7bb81b20ed81336f2924d115.jpeg)





![Linux - скрипт bash: слишком много аргументов в [test] - question-it.com](http://myeditor.ru/wp-content/uploads/3/b/6/3b62ba17007cbb82a8cd5a9c16c469db.png)








![Linux - скрипт bash: слишком много аргументов в [test] - question-it.com](http://myeditor.ru/wp-content/uploads/5/5/4/5541dbb32f756157e3eba69efdc951de.jpeg)
![Скрипт bash: слишком много аргументов в [test]](http://myeditor.ru/wp-content/uploads/c/4/a/c4a3dca80e0b5def515940bf6cb3a6b6.jpeg)
