Попробуйте этот цикл. Настройте его под свои нужды.
i=0
for file in *; do
line=""
line="$(grep -hm1 'Minimum' "${file}")"
[ -z "$line" ] || echo "$line" > new"${i}".txt
((i++))
done
Измените *
в этой строке:for file in *; do
на свой набор файлов.
Позаботьтесь об отсеивании любого нежелательного вывода grep, который может появиться.
По умолчанию molly-guard
запрашивает имя хоста только в том случае, если считает, что оно находится в интерактивном входе в систему SSH. Он определяет «интерактивный» статус, проверяя, подключен ли его стандартный входной поток к чему-то, что ведет себя как терминал. (В частности, его скрипт 30-query-hostname
sub -выполняет test -t 0 || exit 0
перед тем, как перейти к коду, выдающему приглашение.)
Вы можете принудительно провалить этот тест, запустив сценарий со стандартным вводом, перенаправленным с чего-то, что не является терминалом. /dev/null
было бы обычным выбором, что-то вроде:
$ my_script_that_will_trigger_a_reboot </dev/null
Если вашему сценарию необходимо получить ввод с терминала перед запуском перезагрузки, и поэтому вы не можете запустить сценарий с перенаправлением стандартного ввода, вы можете изменить сценарий так, чтобы он перенаправлял стандартный ввод только для команды reboot
. Возможно, даже дайте вашему сценарию опцию, которая говорит ему, следует ли выполнять перенаправление на reboot
, чтобы по умолчанию он все еще подвергался вмешательству molly-guard
.