14.4.3. Специальные параметры
14.4.3. Специальные параметры
Теперь, когда вы изучили, как получить доступ к параметрам shell–сценариев и применять их, было бы полезным узнать об этих параметрах больше. Рассмотрим, каким образом сценарий применяет специальные параметры. Существует семь специальных параметров, которые представлены в табл. 14.2.
Таблица 14.2. Специальные параметры интерпретатора shell
$# Число аргументов, передаваемых сценарию $* В отдельной строке отображаются все аргументы, которые передаются сценарию. Здесь может содержаться более девяти параметров, в отличие от позиционных параметров $$ Текущий идентификатор PID для выполняющегося сценария $! Идентификатор PID для последнего процесса, который выполняется в фоновом режиме $@ Означает то же самое, что и параметр $#, но, если параметр заключен в кавычки, то и каждый аргумент отображается в кавычках $- Отображение текущих опций интерпретатора команд; аналогично применению команды set $? Показывает код завершения последней команды. Значение 0 свидетельствует об отсутствии ошибок, любое другое значение -o, их наличииПреобразуем сценарий param, применяя некоторые специальные параметры. Затем выполним сценарий.
$ pg param
#!/bin/sh
# все параметры
echo "This ls the script name : §0"
echo "This ls the first parameter : $1"
echo "This is the second parameter : $2"
echo "This ls the third parameter : $3"
echo "This ls the fourth parameter : $4"
echo "This ls the fifth parameter : $5"
echo "This ls the sixth parameter : $6"
echo "This ls the seventh parameter : $7"
echo "This ls the eighth parameter : $8"
echo "This ls the ninth parameter : $9"
echo "The number of arguments passed : $#"
echo "Show all arguments : $*"
echo "Show me my process ID : $$"
echo "Show me the arguments in quotes :" "$@"
echo "Did my script go with any errors : $?"
$ param Merry Christmas Mr Lawrence
This ls the script name : ./param
This ls the first parameter : Merry
This ls the second parameter : Christmas
This ls the third parameter : Mr Lawrence
This ls the fourth parameter :
This ls the fifth parameter :
This ls the sixth parameter :
This ls the seventh parameter ;
This ls the eighth parameter :
This ls the ninth parameter :
The number of arguments passed ;3
Show all arguments : Merry Christmas Mr Lawrence
Show me my process ID : 630
Show me the arguments in quotes :"Merry" "Christmas" "Mr Lawrence"
Did my script go with any errors :0
При выводе данных с помощью специальных параметров можно получить много полезной информации о сценарии. Существует возможность проверить, какое число аргументов передается, а также идентификатор процесса этого сценария в том случае, если нужно уничтожить сценарий.