Пустой указатель IFS не является тем же как сбросом IFS?

Для диска ввод-вывод, отклоняющийся существует несколько опций. Мой любимый sar команда от sysstat. По умолчанию это дает вывод как это:

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

%iowait потраченное ожидание времени на вводе-выводе. Используя пакет Debian, необходимо включить коллектор статистики через /etc/default/sysstat файл конфигурации после установки пакета.

Для наблюдения текущего использования, вспыхнувшего устройством, можно использовать iostat команда, также от sysstat пакета:

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

Некоторые другие опции, которые могут показать использование диска в отклоняющихся графиках, являются munin и кактусами.

13
13.04.2017, 15:36
1 ответ

Ответы, которые Вы нашли на Exchange Стека, являются правильными, и это учебное руководство является неправильным. Можно экспериментировать собой или искать его в стандарте. Сброс IFS эквивалентно установке его к значению по умолчанию новой строки вкладки пространства, в то время как пустое IFS эффективно выключает полевое разделение.

Можно консультироваться со страницей Sven Mascheck по поводу IFS об исторических реализациях. Нескольким историческим оболочкам не нравилось unset IFS, и очень старая версия ksh рассматривала его как пустое IFS но все современные оболочки и самые старые оболочки рассматривают сброс IFS как значение по умолчанию.

Вы не должны запускать свой сценарий с IFS= если Вы не хотите выключить полевое разделение (который может быть разумным решением — но отметить, что все еще необходимо поместить двойные кавычки вокруг замен для предотвращения globbing, если Вы не выключаете это с set -f также). Для сброса значения по умолчанию использовать unset IFS. Это спорно, полезно ли это в начале сценария; существует много других плохих вещей такой как изворотливое PATH то, что вызывающая сторона может сделать, чтобы заставить Ваш сценарий пойти не так, как надо.

Это учебное руководство также советует для сброса PATH. Это - обычно плохой совет. В большинстве случаев Вы не можете предсказать, каков корректный путь поиска, но пользователь знает. Как Вы знаете ли /usr/local/bin или /home/bob/bin содержит исправленные версии ошибки утилит на древнем Unix где те в /usr/bin багги? Вы действительно хотите встроить всю логику, чтобы выяснить, поместить ли /usr/xpg6/bin перед /bin? В том, какое положение Вы хотите /usr/gnu/bin? Не сбрасывайте ПУТЬ, если Ваш сценарий не предназначается для определенной системы.

Я не прочитал это учебное руководство, но я действительно проверял одну вещь: это не говорит Вам с самого начала всегда помещать двойные кавычки вокруг замен команды и подстановок переменных. Таким образом, я не думаю, что это учебное руководство является хорошим.

20
27.01.2020, 19:53
  • 1
    unset IFS не сбрасывает IFS к ее значению по умолчанию в ударе, хотя это действительно сбрасывает разделение поля. –  Melab 07.09.2017, 19:06
  • 2
    @Melab unset IFS не сбрасывает IFS к его значению по умолчанию это сбрасывает его. Но сброс IFS имеет тот же эффект как IFS набор к значению по умолчанию. –  Gilles 'SO- stop being evil' 07.09.2017, 20:59

Теги

Похожие вопросы