Q1: Да. “Полевое разделение” и “разделение слова” являются двумя условиями для того же понятия.
Q2: да. Если IFS
сброшен (т.е. после unset IFS
), это эквивалентно IFS
быть установленным на $' \t\n'
(пространство, вкладка и новая строка). Если IFS
установлен на пустое значение (это - то, что “пустой указатель” означает здесь) (т.е. после IFS=
или IFS=''
или IFS=""
), никакое полевое разделение не выполняется вообще (и $*
, который обычно использует первый символ $IFS
, использует пробел).
Q3: Если Вы хотите иметь значение по умолчанию IFS
поведение, можно использовать unset IFS
. Если Вы хотите установить IFS
явно к этому значению по умолчанию, можно поместить пространство буквенных символов, вкладку, новую строку в одинарных кавычках. В ksh93, ударе или zsh, можно использовать IFS=$' \t\n'
. Портативно, если Вы не хотите иметь литеральный символ табуляции в своем исходном файле, можно использовать
IFS=" $(echo t | tr t \\t)
"
Q4: с IFS
набор к пустому значению, read -r line
наборы line
к целой строке кроме ее новой строки завершения. С IFS=" "
, пробелы вначале и в конце строки обрезаются. Со значением по умолчанию IFS
, вкладки и пробелы обрезаются.
apache
смочь изменить их с помощью Ваших веб-сценариев. – rush 11.12.2012, 13:19