export SRVHOME=`readlink -f \`dirname $0\`/../`
我知道它导出一个目录变量。但是命令周围的符号“\`”或“`”是什么意思?
无论你在两个 ` 字符之间放置什么,都是在你的 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