0
export SRVHOME=`readlink -f \`dirname $0\`/../`

我知道它导出一个目录变量。但是命令周围的符号“\`”或“`”是什么意思?

4

1 回答 1

2

无论你在两个 ` 字符之间放置什么,都是在你的 shell 的一个分支上运行的命令。在这种情况下,命令本身包含另一对 ` 字符 - 因此,它们必须被转义,这是通过在前面添加一个\字符来完成的。

另一个例子:

$ set -x
$ date -d @`echo \`date +%s\``
+++ date +%s
++ echo 1357377825
+ date -d @1357377825
Sat Jan  5 11:23:45 EET 2013

注意set -x显示命令的所有步骤。有助于调试。

bash中,您可以运行几个封装的命令$(command)

$ date -d @$(echo $(date +%s))
+++ date +%s
++ echo 1357378055
+ date -d @1357378055
Sat Jan  5 11:27:35 EET 2013
于 2013-01-05T09:22:31.810 回答