【发布时间】:2017-04-18 02:43:55
【问题描述】:
#!/bin/bash
list="one two three"
one=1
two=2
three=3
for k in $list
do
echo $k
done
对于上面的代码,输出是:
一个
两个
三
但我一直认为它应该输出:
1
2
3
这很令人困惑。这个怎么理解?
【问题讨论】:
标签: bash
#!/bin/bash
list="one two three"
one=1
two=2
three=3
for k in $list
do
echo $k
done
对于上面的代码,输出是:
一个
两个
三
但我一直认为它应该输出:
1
2
3
这很令人困惑。这个怎么理解?
【问题讨论】:
标签: bash
扩展$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
【讨论】: