150

我有一个名为filepath=/tmp/name.

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

在我的 shell 脚本中,我试图做这样的事情(反引号是有意的)

`tail -1 $filepath_newstap.sh`

此行失败,duuh!,因为未调用变量$filepath_newstap.sh

如何附加_newstap.sh到变量名?

请注意,反引号用于表达式评估。

4

3 回答 3

245

利用

"$filepath"_newstap.sh

或者

${filepath}_newstap.sh

或者

$filepath\_newstap.sh

_是标识符中的有效字符。点不是,所以外壳尝试插入$filepath_newstap.

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

于 2013-07-12T18:59:07.863 回答
21

在变量名周围使用花括号:

`tail -1 ${filepath}_newstap.sh`
于 2013-07-12T18:58:39.237 回答
4

在 Bash 中:

tail -1 ${filepath}_newstap.sh
于 2013-07-12T19:01:59.983 回答