Как выравнивание вывода последних полей

В / etc / inittab найдите строку вида id: 3: initdefault: . Число, вероятно, будет 3 или 5, но может быть 2 или 4. Число в этой строке - уровень выполнения по умолчанию. Скорее всего, это не 2, поэтому ваши скрипты в rc2.d не запустятся.

Поместите ваш сценарий в каталог rcN.d, который соответствует номеру в строке initdefault .

В принципе, rc.local - лучший выбор, но rc.local настолько сильно различается от дистрибутива к дистрибутиву (иногда это каталог, иногда скрипт, иногда он вообще не настроен), что, не зная вашего дистрибутива, он проще просто поставить его на правильный уровень выполнения. Вы можете попробовать man rc.local и посмотреть, что там написано в вашей системе. Если ваша система поддерживает rc.local как директрой, поместите туда свой скрипт и не беспокойтесь об уровнях выполнения.

Также убедитесь, что ваш скрипт принадлежит пользователю root и имеет права 755 (если вы хотите, чтобы кто-нибудь мог его запустить) или 744.

0
19.12.2018, 02:29
2 ответа

Выполните цикл pre -для вычисления самого длинного имени файла, а затем используйте его в качестве параметра интервала:

longest=0
for file in *.bash
do
  [ "${#file}" -gt "$longest" ] && longest=${#file}
done

#... for your execution loop
printf "running the script - %${longest}s\t- "
printf "%s\n" "$var"

Я предполагаю, что все ваши скрипты охватываются шаблоном *.bash; отрегулируйте это по мере необходимости. Начальные петли вычисляют необходимую ширину; начальный printfиспользует эту переменную для форматирования ширины поля скрипта для каждой итерации цикла for.

1
28.01.2020, 02:30

Я не думаю, что вы можете сделать правильное форматирование внутри сценария, поскольку более ранние итерации цикла не имеют возможности узнать ширину следующих переменных; как насчет двухэтапного -процесса?

Я также позволил (личным предпочтениям )правильно -выровнять выходные значения времени.

Сохранив ваш пример ввода в файл (, вы не можете сгенерировать его динамически ), мое предложение выглядит следующим образом:

cat yael | awk -F'-' '{printf "%s - %-30s - % 6.2f\n",$1, $2, $3}' 
running the script  -  Verify_disk.bash              -   1.42
running the script  -  Verify_yum_list.bash          -  10.49
running the script  -  Verify_size.bash              -   2.93
running the script  -  Verify_mem_size.bash          -   0.71
running the script  -  Verify_disk_size.bash         -   2.41
running the script  -  Verify_wdisk.bash             -   1.63
running the script  -  Verify_cpu.bash               -   0.74

Итак, если бы вы передавали вывод своего скрипта через мой awk...

1
28.01.2020, 02:30

Теги

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