Пример 9-8. Содержимое $* и $@, когда переменная $IFS -- пуста

Пример 9-8. Содержимое $* и $@, когда переменная $IFS -- пуста

#!/bin/bash

# Если переменная $IFS инициализирована "пустым" значением,

# то "$*" и "$@" содержат аргументы не в том виде, в каком ожидается.

mecho () # Вывод аргументов.

{

echo "$1,$2,$3";

}

IFS="" # Инициализация "пустым" значением.

set a b c # Установка аргументов.

mecho "$*" # abc,,

mecho $* # a,b,c

mecho $@ # a,b,c

mecho "$@" # a,b,c

# Поведение переменных $* и $@, при "пустой" $IFS, зависит

# от версии командной оболочки, Bash или sh.

# Поэтому, было бы неразумным пользоваться этой "фичей" в своих сценариях.

# Спасибо S.C.

exit 0

Прочие специальные переменные

$-

Список флагов, переданных сценарию (командой set). См. Пример 11-13.

Эта конструкция изначально была введена в ksh, откуда перекочевала в Bash и, похоже, работает в Bash не совсем надежно. Единственное возможное применение -- проверка - запущен ли сценарий в интерактивном режиме.

$!

PID последнего, запущенного в фоне, процесса

LOG=$0.log

COMMAND1="sleep 100"

echo "Запись в лог всех PID фоновых процессов, запущенных из сценария: $0" >> "$LOG"

# Таким образом возможен мониторинг и удаление процессов по мере необходимости.

echo >> "$LOG"

# Команды записи в лог.

echo -n "PID of "$COMMAND1": " >> "$LOG"

${COMMAND1} &

echo $! >> "$LOG"

# PID процесса "sleep 100": 1506

# Спасибо Jacques Lederer за предложенный пример.

$_

Специальная переменная, содержит последний аргумент предыдущей команды.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

10. Когда открыть, а когда закрыть

Из книги Волшебный котел автора Реймонд Эрик Стивен

10. Когда открыть, а когда закрыть Рассмотрев деловые модели, которые поддерживают разработку программного обеспечения с открытыми текстами, мы можем теперь приблизиться к общему вопросу о том, когда исходному коду, с точки зрения экономики, имеет смысл быть «открытым», а


8.2.3.9.1 Содержимое

Из книги Информационная технология ПРОЦЕСС СОЗДАНИЯ ДОКУМЕНТАЦИИ ПОЛЬЗОВАТЕЛЯ ПРОГРАММНОГО СРЕДСТВА автора Автор неизвестен


5.6.3 Переменная PATH

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

5.6.3 Переменная PATH Еще одна очень важная переменная имеет имя PATH. Она задает перечень путей к каталогам, в которых bash осуществляет поиск файлов (в частности, файлов с командами) в тех случаях, когда полный путь к файлу не задан в командной строке. Отдельные каталоги в этом


5.6.4 Переменная IFS

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

5.6.4 Переменная IFS Эта переменная задает разделители полей (Internal Field Separator), которые используются при операции разделения слов при преобразованиях командной строки, выполняемых оболочкой перед тем, как запустить командную строку на исполнение. Значение этой переменной по


4.2.1. Библиотека jcode и переменная $KCODE

Из книги VBA для чайников автора Каммингс Стив

4.2.1. Библиотека jcode и переменная $KCODE Чтобы использовать в Ruby разные наборы символов, вы должны знать о глобальной переменной $KCODE, от значения которой зависит поведение многих системных методов, манипулирующих строками. (Кстати говоря, буква K — напоминание о кандзи, одной


Что содержит переменная перед тем, как ей присваивается значение?

Из книги PGP: Кодирование и шифрование информации с открытым ключом. автора Левин Максим

Что содержит переменная перед тем, как ей присваивается значение? Во время выполнения процедуры VBA выделяет для каждой переменной из этой процедуры пространство в памяти и приписывает переменной начальное значение; означающее, что в переменной ничего не хранится. Чаще


Системная переменная для задания имени пути.

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

Системная переменная для задания имени пути. PGP использует несколько специальных файлов для своих целей, таких, как ваши стандартные каталоги ключей "pubring.pgp" и "secring.pgp", файл начального числа для генерации случайных чисел "randseed.bin", файл конфигурации PGP "config.txt" и файл перевода


Условная переменная

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Условная переменная Одним из важнейших принципов использования мьютексов является максимальное сокращение размеров критической секции, то есть участка, который потоки должны проходить последовательно. Однако зачастую возникает необходимость ожидания выполнения


Переменная FIREBIRD (или INTERBASE)

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Переменная FIREBIRD (или INTERBASE) Если установлена переменная окружения FIREBIRD (INTERBASE для версии 1.0.x), то она используется и при инсталляции, и в процессе работы на всех платформах для указания корневого каталога сервера Firebird. Если она присутствует, то перекрываются все другие


Пример 9-9. Переменная "подчеркивание"

Из книги Linux программирование в примерах автора Роббинс Арнольд

Пример 9-9. Переменная "подчеркивание" #!/bin/bashecho $_ # /bin/bash # Для запуска сценария был вызван /bin/bash.du >/dev/null # Подавление вывода.echo $_ # duls -al >/dev/null # Подавление вывода.echo $_ # -al (последний аргумент):echo $_ # :$?Код возврата команды, функции


5.1.2. Содержимое каталога

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович


Содержимое списков

Из книги C++ для начинающих автора Липпман Стенли

Содержимое списков Для формирования содержимого некоторых списков стандартных диалогов Windows используется ряд стандартных параметров (о ветвях, используемых для формирования списков стандартных диалогов, будет рассказано чуть позже). Эти параметры создаются в дочерних


Переменная jiffies

Из книги Описание языка PascalABC.NET автора Коллектив РуБоард

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


Переменная Self

Из книги автора

Переменная Self Внутри каждого нестатического метода неявно определяется переменная Self, ссылающаяся на объект, вызвавший этот метод.Например: type A = class i: integer; constructor Create(i: integer); begin Self.i := i; end; end; В момент вызова конструктора Create объект будет уже создан.