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