0

以下のようなシェルスクリプトを書いています。

#/bin/bash

ip1="1.1.1.1"
ip2="2.2.2.2"

for ((i=1; i<=2; i++))
do
echo "$[ip$i]"

done

実行後にエラーが発生します。
./1.sh: 8 行目: 1.1.1.1: 構文エラー: 無効な算術演算子 (エラー トークンは ".1.1.1")

どうもありがとう !

4

1 に答える 1

2

間接変数展開を使用します。

#/bin/bash

ip1="1.1.1.1"
ip2="2.2.2.2"

for ((i=1; i<=2; i++))
do
  var="ip$i"
  echo "${!var}"
done

ただし、配列を使用することをお勧めします。

ips=( "1.1.1.1" "2.2.2.2" )
for ip in "${ips[@]}"; do
   echo "$ip"
done

for ((i=1; i<=${#ip[@]}; i++)); do
   echo "${ips[i]}"
done
于 2012-09-20T03:40:31.513 に答える