-1
我找不到對這個問題的答案,而不是人們要求使用數組。這不是我想要的。我想在一個for循環中聲明一些變量,除了一個索引號以外,它的名字相同。Bash在for循環內聲明變量與一個數字
I=0
For int in $ints;
Do i=[$i +1]; INTF$i=$int; done
它並不真正的工作。當我運行腳本時,它認爲中間部分INTF$i=$int
是一個命令。
我找不到對這個問題的答案,而不是人們要求使用數組。這不是我想要的。我想在一個for循環中聲明一些變量,除了一個索引號以外,它的名字相同。Bash在for循環內聲明變量與一個數字
I=0
For int in $ints;
Do i=[$i +1]; INTF$i=$int; done
它並不真正的工作。當我運行腳本時,它認爲中間部分INTF$i=$int
是一個命令。
沒有一個數組,你需要使用declare
命令:
i=0
for int in $ints; do
i=$((i +1))
declare "intf$i=$int"
done
使用數組:
intf=()
for int in $ints; do
intf+=($int)
done
Bash不能很好地處理動態變量名,但可以使用數組來保存變量和結果。
[/tmp]$ cat thi.sh
#!/bin/bash
ints=(data0 data1 data2)
i=0
INTF=()
for int in $ints
do
((i++))
INTF[$i]=$int
echo "set $INTF$i INTF[$i] to $int"
done
[/tmp]$ bash thi.sh
set 1 INTF[1] to data0
那不是猛砸...... – Biffen
'我找不到答案這個問題,除了要求使用數組的人之外。「那是因爲你應該使用數組來代替。 – 123
我會爲此使用一個數組。 – hek2mgl