Внутренний разделитель полей (сокращенно IFS) относится к переменной, которая определяет символ или символы, используемые для разделения шаблона на токены для некоторых операций. IFS обычно включает пробел, табуляцию и новую строку.
Показать мой текущий IFS:
echo -n "$IFS" |xxd
00000000: 2009 0a
Теперь я написал простой bash скрипт.

Весь код находится в моем dropbox .
Когда я вставляю его в консоль:

В начале строки 2 до строки 5 это \t
; если я заменю его пустым, его можно будет скопировать в консоль, и ничего не произойдет.
Итак, мы можем сделать вывод, что \t
приводит к этому действию. Интересно, если переменная $1
никогда не была назначена, как работает код при вставке в консоль?
Я читал концепцию IFS
несколько раз, но не могу найти объяснение.