我正在尝试创建一个动态变量并分配100给它
#!/bin/bash
.
.
active_id=$p_val
flag_$active_id=100
Run Code Online (Sandbox Code Playgroud)
但是我这样做会有错误,有什么帮助吗?
anu*_*ava 20
您可以使用bash的declare指令和间接功能,如下所示:
p_val="foo"
active_id=$p_val
declare "flag_$active_id"="100"
Run Code Online (Sandbox Code Playgroud)
测试:
> set | grep flag
flag_foo=100
Run Code Online (Sandbox Code Playgroud)
更新:
p_val="foo"
active_id="$p_val"
v="flag_$active_id"
declare "$v"="100"
> echo "$v"
flag_foo
> echo "${!v}"
100
Run Code Online (Sandbox Code Playgroud)
用法if condition:
if [ "${!v}" -ne 100 ]; then
echo "yes"
else
echo "no"
fi
# prints no
Run Code Online (Sandbox Code Playgroud)
我不知道这应该是什么好处,但你可以用bash的eval声明来实现这样的东西.
以下代码说明了这一点.
#!/bin/bash
p_val="TEST"
active_id=$p_val
eval "flag_$active_id=100"
echo $flag_TEST
eval "echo \$flag_$active_id"
Run Code Online (Sandbox Code Playgroud)
该终端echo的看跌期权
100
100
Run Code Online (Sandbox Code Playgroud)
在...上stdout.
| 归档时间: |
|
| 查看次数: |
19270 次 |
| 最近记录: |