将变量保存到文件时换行 - bash

将变量保存到文件时换行 - bash

我在一个变量中有多个 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

我该怎么做呢?

答案1

你可以这样做。

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

答案2

单行:

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

其行为如下:

  • $ActiveIPs 由 shell 扩展。
    • 单词拆分在空白字符处将其拆分。拆分后的片段将作为单独的参数传递给 printf。
    • 如果像 那样将其引用printf "%s\n" "$ActiveIPs",则它将不会被拆分,并且会作为单个参数传递给 printf。
  • printf 接受第一个参数并将其格式化为“%s \ n”。
  • 如果 printf 获得的参数多于格式说明符,它会重用格式字符串。在本例中,它有 1 个格式说明符 (%s),因此它会逐一将“%s\n”应用于剩余的参数。

相关内容