外壳可变插补

我有一个叫 filepath=/tmp/name的变量。

要访问这个变量,我知道我可以这样做: $filepath

在我的 shell 脚本中,我尝试执行类似的操作(打算使用反勾)

`tail -1 $filepath_newstap.sh`

这一行失败了,Duuh! ,因为这个变量不叫 $filepath_newstap.sh

如何将 _newstap.sh追加到变量名?

请注意,反勾是用于表达式计算的。

168867 次浏览

在变量名前后使用大括号:

`tail -1 ${filepath}_newstap.sh`

使用

"$filepath"_newstap.sh

或者

${filepath}_newstap.sh

或者

$filepath\_newstap.sh

_是标识符中的有效字符,而 Dot 不是,所以 shell 尝试插入 $filepath_newstap

当引用未定义的变量时,可以使用 set -u使 shell 退出时出现错误。

在 Bash:

tail -1 ${filepath}_newstap.sh