[email protected] Bash? - программирование" />

Что такое [email protected] Bash?

Я считаю, что дескриптор [email protected] в оболочке script является массивом всех аргументов, заданных script. Это правда?

Я спрашиваю, потому что я обычно использую поисковые системы для сбора информации, но я не могу google для [email protected], и я стал слишком обычным, чтобы легко получить все.

Ответ 1

Да. См. Справочную страницу bash (первое, что вы переходите) под Специальные параметры

Специальные параметры

В оболочке рассматриваются несколько параметров. К этим параметрам можно отнести только ссылки; присвоение им не разрешено.

* Расширяется до позиционных параметров, начиная с одного. Когда расширение происходит в двойных кавычках, оно расширяется до одного слова со значением каждого параметра, разделенным первым символом специальной переменной IFS. То есть "$*" эквивалентно "$1c$2c...", где c - это первый символ значения переменной IFS. Если IFS не задано, параметры разделяются пробелами. Если IFS равно null, параметры объединяются без промежуточных разделителей.

@ Расширяется до позиционных параметров, начиная с единицы. Когда расширение происходит в двойных кавычках, каждый параметр расширяется до отдельного слова. То есть "[email protected]" эквивалентно "$1" "$2"... Если двойное кавычное разложение происходит внутри слова, разложение первого параметра соединяется с начальной частью исходного слова, а разложение последний параметр соединяется с последней частью исходного слова. Когда нет позиционных параметров, "[email protected]" и [email protected] расширяются до нуля (т.е. Удаляются).

Ответ 2

Просто прочитав, я бы никогда не понял, что "[email protected]" расширяется в список отдельных параметров. В то время как "$*" является одним параметром, состоящим из всех параметров, добавленных вместе.

Если это все еще не имеет смысла, сделайте это.

http://www.thegeekstuff.com/2010/05/bash-shell-special-parameters/