Лекция: Внутренние переменные

Значения внутренних переменных устанавливаются самим интерпретатором. Вне контекста получения значения переменные этого типа смысла не имеют. Эти переменные редко используются в командной строке, основная область их применения – скрипты.

$0 имя запущенного скрипта
$1, $2,... позиционные параметры скрипта
$# число позиционных параметров скрипта
$? код возврата последнего выполненного процесса
$$ PID текущего shell
$! PID последнего процесса, запущенного в фоновом режиме
$* все параметры, переданные скрипту; передаются как единое слово, будучи заключенным в кавычки: “$*” = “$1 $2 $3... “
#@ все параметры, переданные скрипту; передаются как отдельные слова, заключенные в кавычки: “$*” = “$1” “$2” “$3”...

 

Примеры:

Текст скрипта: #!/bin/bash echo ***MY_SCRIPT_1 $0 *** echo $1 $2 $3 #печать трех параметров shift #сдвиг значений аргументов на 1 позицию echo $1 $2 $3 #   Запуск скрипта: …~>./scr1.sh a1 a2 a3 a4 ***MY_SCRIPT_1 scr1.sh *** a1 a2 a3 a2 a3 a4  
Текст скрипта: #!/bin/bash echo ***MY_SCRIPT_2 $0 *** if [ $# -lt 2 ] #если число параметров меньше 2-х then echo usage: $0 arg1 arg2 exit 1 fi Запуск скрипта: …~>./scr2.sh ***MY_SCRIPT_1 scr2.sh *** usage: scr2.sh arg1 arg2 …~>./scr2.sh a1 a2 ***MY_SCRIPT_1 scr2.sh ***  

 

Код возврата последней выполненной задачи ($?) удобно использовать в условных выражениях. По правилам успешным завершением задачи считается код возврата, равный 0, ненулевой код свидетельствует об ошибке. Код возврата скриптов генерируется с помощью команды exit n, где n – целое число. Пример:

 

echo ***MY_SCRIPT_3 $0 *** # зарегистрирован ли в системе пользователь с именем alla # проверяется файл passwd на наличие слова alla и в случае удачи grep возвращает 0 grep alla /etc/passwd if [ $? –ne 0 ] #если код возврата последнего выполненного процесса = 0, то слово alla найдено then echo пользователь alla в системе зарегистрирован exit 1 fi
еще рефераты
Еще работы по информатике