我有一个名为$TEST的环境变量,它引用一个目录
在我的bash脚本中,我有一个名为$VARTEST的变量,它是$TEST / dir / file
在我的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包含恶意代码,这可能会很危险.