如何理解bash中变量和变量的值

时间:2017-04-18 02:43:55

标签: bash

#!/bin/bash

list="one two three"
one=1
two=2 
three=3
for k in $list
do 
    echo $k
done

对于上面的代码,输出是:
一个
2个
3

但我一直认为应该输出:
1
2
3
这令人困惑。怎么理解这个?

1 个答案:

答案 0 :(得分:2)

扩展$k只是将变量的名称作为字符串。如果需要变量的值,则必须使用参数扩展语法${!k}。记录在案here

#!/bin/bash

list="one two three"
one=1
two=2 
three=3
for k in $list
do 
        echo "${!k}"
done

输出

1
2
3