变量中的环境变量

Ric*_*cho 4 bash shell environment-variables

我有一个名为环境变量$TEST是指在我的bash脚本的目录中我称之为一个变量$VARTEST$TEST/dir/file

现在我想grep指定的文件,$VARTEST所以我尝试:
grep somestring $VARTEST但它不会转换$TEST为它的目录

我已经尝试不同的组合{},""''但没有成功

Joh*_*iss 6

我想你想要的

eval grep somestring "$VARTEST"
Run Code Online (Sandbox Code Playgroud)

甚至

VARTEST_EVALUATED=$(eval echo $VARTEST)
grep "$SOMESTRING" "$VARTEST_EVALUATED"
Run Code Online (Sandbox Code Playgroud)

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

VARTEST="$TEST/foo/bar"
Run Code Online (Sandbox Code Playgroud)

代替

VARTEST='$TEST/foo/bar'
Run Code Online (Sandbox Code Playgroud)

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

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