【发布时间】:2017-09-14 14:47:01
【问题描述】:
我们知道 'eval' 可以做坏事:比如执行代码。 我需要 BASH 中的一种方法,以便能够在字符串中识别使用环境变量的位置,并最终将其替换为其实际值。
例如这是一个复杂得多的非常简单的示例。
文件“x.dat”包含:
$MYDIR/file.txt
环境
export MYDIR=/tmp/somefolder
脚本“x.sh”
...
fileToProcess=$(cat x.dat)
realFileToProcess=$(eval echo $fileToProcess)
echo $realFileToProcess
...
请记住,字符串中引用的环境变量也可以是:
${MYDIR}_txt
$MYDIR-txt
${MYDIR:0:3}:txt
${MYDIR:5}.txt
【问题讨论】:
标签: regex bash variables eval substitution