如何为变量分配动态值?我所知道的最简单的方法是使用函数。例如
fn(){
VAR=$VAL
}
VAL=value
fn
echo $VAR
将输出
value
但我想要更简单的东西,比如
VAR=$VAL
VAL=value
echo $VAR
输出
value
我应该使用什么命令?最好与破折号兼容。
谢谢!
更新:已删除与破折号相关的#!/ bin / sh 。感谢“Ignacio Vazquez-Abrams”的解释!
更新2:为我的脚本添加源代码以更好地了解情况。
INPUT=`dpkg -l|grep ^rc|cut -d' ' -f3`
filter(){
echo *$A*
}
for A in $INPUT;do find ~ -iname `filter`|grep ^$HOME/\\.|grep -iz --color $A;done
此脚本应有助于查找已删除软件包的其余配置文件。
答案 0 :(得分:2)
好的,如果功能不好,那么调用eval可以吗?
export VAR='echo $VAL'
VAL=10
eval $VAR
这将显示
10
答案 1 :(得分:0)
设置值的简单函数怎么样?
# export is needed so f() can use it.
export VAR
f() {
VAR=$@
}
f 10
echo $VAR
f 20
echo $VAR
上面的代码将显示:
10
20
答案 2 :(得分:0)
如果我了解您的需求,您需要间接,请尝试以下shell代码(使用dash
测试):
var=foo
x=var
eval $x=another_value
echo $var
输出:
another_value
终于:
每次需要修改var
时,都需要运行eval $x=foobar