Вопросы с тегом «syntax»

51
Является ли $ () подоболочкой?

Я понимаю, что синтаксис подоболочки (<commands...>)- это $()всего лишь подоболочка, из которой можно извлечь значения переменных? Примечание: это относится к bash 4.4 на основании различных формулировок в их...

27
Являются ли оператор if else логическим и && или || и где я должен предпочесть один другому?

Я узнаю о структурах принятия решений, и я столкнулся с этими кодами: if [ -f ./myfile ] then cat ./myfile else cat /home/user/myfile fi [ -f ./myfile ] && cat ./myfile || cat /home/user/myfile Они оба ведут себя одинаково. Есть ли какие-то преимущества в использовании одного способа из...

17
Имена функций сценария Bash, содержащие двойное двоеточие '::'

Сегодня я натолкнулся на скрипт Bash, в котором есть имена функций с двойными двоеточиями ::, например, file::write()и file::read(). Я никогда раньше не видел этот синтаксис в скрипте Bash, и когда я вызывал скрипт, он работал нормально (к моему удивлению). После просмотра справочной страницы Bash...

14
Как передать параметры функции в скрипте bash?

Я хотел бы написать функцию, которую я могу вызвать из скрипта с множеством различных переменных. По некоторым причинам у меня много проблем с этим. Примеры, которые я читал, всегда используют глобальную переменную, но это не сделает мой код более читабельным, насколько я могу видеть. Пример...

12
Слишком много строк shebang (объявление скрипта) - есть ли способ уменьшить их количество?

У меня есть проект, состоящий из около 20 небольших .shфайлов. Я называю их «маленькими», потому что обычно ни один файл не содержит более 20 строк кода. Я выбрал модульный подход, потому что, таким образом, я верен философии Unix, и мне легче поддерживать проект. В начале каждого .shфайла я ставлю...

11
Почему нельзя изменить порядок оператора перенаправления ввода для циклов while?

В Bash вы можете переместить операторы перенаправления ввода в начало команды: cat <<< "hello" # equivalent to <<< "hello" cat Почему вы не можете сделать то же самое для цикла while? while read -r line; do echo "$line"; done <<< "hello" # hello <<< "hello" while...

10
Зачем группе команд скобки нужны пробелы после открывающей скобки в POSIX Shell Grammar?

TL; DR : Почему группе скобок POSIX нужны пробелы после {зарезервированного слова, а в подоболочке нет после зарезервированного слова (? Грамматика оболочки POSIX определяет группу скобок и подоболочку следующим образом brace_group : Lbrace compound_list Rbrace subshell : '(' compound_list ')'...