打印字符串之间的空格

打印字符串之间的空格
#!/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' "$@"

相关内容