#!/bin/bash
ARRAY="185.18.207.66 31.18.212.113"
result=""
for i in $ARRAY
do
result=$(printf '%s %s' "$result" "$i" "checked")
done
paste <(printf "%s\n" $result)
我正在尝试打印 IP 地址,但"checked"
为每个 IP 地址附加短语。
但我无法打印 IP 和"checked"
短语之间的空格
上面的代码打印:
185.18.207.66checked
31.18.212.113checked
我怎样才能让它打印如下?
185.18.207.66 checked
31.18.212.113 checked
答案1
在正确完成脚本之前,还有很多事情需要改进:
- 缺少双引号
- 产生不必要的外部命令。
只需使用数组即可:
#!/bin/bash
ARRAY=(185.18.207.66 31.18.212.113)
printf '%s checked\n' "${ARRAY[@]}"
或者使用"$@"
POSIXly 来实现:
#!/bin/sh
set -- 185.18.207.66 31.18.212.113
printf '%s checked\n' "$@"