bash – 变量中的环境变量

我有一个名为$TEST的环境变量,它引用一个目录
在我的bash脚本中,我有一个名为$VARTEST的变量,它是$TEST / dir / file

现在我想grep $VARTEST指定的文件,所以我尝试:
grep somestring $VARTEST但它没有将$TEST翻译成它的目录

我尝试了{},“”和“’的不同组合,但没有成功

解决方法

我想你想要的

eval grep somestring "$VARTEST"

甚至

VARTEST_EVALUATED=$(eval echo $VARTEST)
grep "$SOMESTRING" "$VARTEST_EVALUATED"

但请记住(正如其他人已经说过的):如果可能的话

VARTEST="$TEST/foo/bar"

代替

VARTEST='$TEST/foo/bar'

只有在你真的需要’懒惰评估’的时候才使用第二个…

警告,如果$VARTEST包含恶意代码,这可能会很危险.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...