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

We use cookies. Read the Privacy and Cookie Policy

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

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