USB -C-монитор перестал работать после установки LUKS

Мне непонятно, почему вы хотите создать три выходных файла, но поскольку это ваше требование, а не мое, возможно, поможет следующее.

data=${1:-ip.txt} while read host port; do preamble="telnet $host $port" case $(telnet $host $port </dev/null 2>&1 | tail -1) in (*closed*) echo "$preamble... Connected" >>Telnet_Success.txt ;; (*refused*) echo "$preamble... Refused" >>Telnet_Refused.txt ;; (*) echo "$preamble... Failed" >>Telnet_Failure.txt esac done <$data exit

Первая строка позволяет вам принять решение о передаче входных данных в другой файл (, например.data.txt ), указав его в качестве аргумента сценария. Например

$ telnet.sh data.txt

Если это не указано, предполагается, что файл «ip.txt». Затем используйте оператор case, чтобы сопоставить последнюю строку выходных данных команды, чтобы определить файл, в который помещается результирующее сообщение.

Обратите внимание, что оператор readпозволяет вам выбирать отдельные «слова» в строке ввода --, что устраняет необходимость использования здесь команд, подобных cut. Кроме того, то, как вы использовали свои файлы, означает, что последующие запуски скрипта добавляются к существующим строкам вывода. Это может быть не то, что вы хотите.

ХТХ

П.С. Строго говоря, я должен был разместить линию шебанга вверху, как в :#!/бин/ш или похожие. Я полагался здесь на тот факт, что я работаю в системе Linux с оболочкой Bash.

1
26.07.2021, 02:50
0 ответов

Теги

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