1

У меня есть несколько IP-адресов в переменной.

ActiveIPs= 192.168.0.1 192.168.0.2 192.168.0.3

Я хочу сохранить их в такой файл

192.168.0.1
192.168.0.2
192.168.0.3

Как мне это сделать?

2 ответа2

3

Один лайнер:

printf "%s\n" $ActiveIPs > ActiveIPs.txt

Это ведет себя следующим образом:

  • $ ActiveIPs расширяется оболочкой.
    • разделение слов разбивает его на пробельные символы. Части передаются в printf как отдельные параметры.
    • Если бы он был в кавычках как в printf "%s\n" "$ActiveIPs" , он не был бы разделен, и он был бы передан в printf как один параметр.
  • printf принимает первый аргумент и форматирует его как "% s\n".
  • Если printf задается больше параметров, чем спецификаторов формата, он повторно использует строку формата. В этом случае он имеет 1 спецификатор формата (% s), поэтому он применяет «% s\n» к остальным параметрам, один за другим.
3

Вы можете сделать это так.

rm -f file
for i in ${ActiveIPs}
do
  echo ${i} >> file
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .