微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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包含恶意代码,这可能会很危险.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐