Hug*_*ugo 6 shell bash shell-script
我正在尝试在我的脚本中执行以下操作:
#/bin/bash -x
var1=www
var2=www2
var3=www3
var4=www4
for i in 1 2 3 4; do
echo \$var$i
done
Run Code Online (Sandbox Code Playgroud)
显然,这不会按预期工作并导致以下输出:
$var1
$var2
$var3
$var4
Run Code Online (Sandbox Code Playgroud)
如何动态引用循环中的变量?
Adr*_*rth 11
你在找这个吗?
$ cat indirection.bash
#!/bin/bash -x
var1=www
var2=www2
var3=www3
var4=www4
for i in 1 2 3 4; do
s="var${i}"
echo "${!s}"
done
Run Code Online (Sandbox Code Playgroud)
$ ./indirection.bash
www
www2
www3
www4
Run Code Online (Sandbox Code Playgroud)
你可以使用一个数组:
#/bin/bash -x
declare -a vars=(
www
www2
www3
www4
)
for var in "${vars[@]}"; do
echo "$var"
done
Run Code Online (Sandbox Code Playgroud)
或者用索引迭代:
for i in "${!vars[@]}"; do
echo "${vars[$i]}"
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2901 次 |
| 最近记录: |