Bash - командный интерпретатор GNU Bourne

Разбиение на слова


Командный интерпретатор обрабатывает результаты подстановки значений параметров, результатов выполнения команд и арифметических вычислений, не взятых в двойные кавычки, разбивая их на слова.

Командный интерпретатор рассматривает каждый символ значения переменной IFS

как разделитель и разбивает результаты подстановок на слова по этим символам. Если переменная IFS не установлена или ее значение - , т.е. стандартное, то любая последовательность подряд идущих символов из IFS считается разделителем слов. Если же переменная IFS имеет значение, отличающееся от стандартного, то последовательность пробельных символов (пробелов и символов табуляции) в начале и в конце слова игнорируется, если пробельные символы входят в значение IFS (их обобщенно называют пробельным символом IFS). Любые символы в значении IFS, не являющиеся пробельными, вместе с любыми идущими за ними пробельными символами IFS, ограничивают слово. Последовательность пробельных символов IFS также считается разделителем. Если переменная IFS имеет пустое значение, разбиение на слова не происходит.

Явные пустые строки ("" или '') оставляются. Не взятые в кавычки неявные пустые строки, получающиеся в результате подстановки параметров, не имеющих значения, удаляются. Если параметр, не имеющий значения, подставляется в двойных кавычках, получается пустая строка, и она остается в командной строке.

Учтите, что если не было подстановок, то и разбиение на слова не выполняется.



Содержание раздела