kshell UNIX基目录

时间:2015-03-02 18:08:17

标签: unix ksh

我试图了解以下kshell脚本行。任何人都可以解释为什么我们需要第三行中的点和空格?

#!/bin/ksh
export scriptDir=${0%/*}
. $scriptDir/version.profile
echo "JAVA_HOME_FOR_THIS_SCRIPT=$JAVA_HOME"

1 个答案:

答案 0 :(得分:2)

.命令也可以写成source,是ksh和其他sh派生shell中的内置命令。在这种情况下,它在当前shell进程的上下文中执行$scriptDir/version.profile中包含的命令。

引用ksh手册页:

  

. name [ arg ... ]
   如果 name 是使用 function 名称保留字定义的函数   语法,该函数在当前环境中执行(就像它一样)   已使用 name ()语法定义。)否则                 如果 name 引用文件,则完整读取该文件,并在当前shell中执行命令   环境。由 PATH 指定的搜索路径用于查找   目录                 包含文件。如果给出了任何参数 arg ,则在处理命令时它们将成为位置参数   并且在完成时恢复原始位置参数                 灰。否则,位置参数不变。退出状态是最后一个命令的退出状态   执行。