#!/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アドレスにフレーズを追加してください。
"checked"
ただし、IPとフレーズの間のスペースは印刷できません。
上記のコードは以下を印刷します。
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' "$@"