检查脚本是否在当前shell中启动

时间:2014-04-11 06:56:06

标签: shell unix ksh

有没有办法在shell脚本(ksh)中检查脚本是否在当前shell中启动了?

示例

使用.(点/源)命令

在当前shell中启动脚本
$ . ./myscript
$ I run in the current environment!


在自己的过程中启动脚本

$ ./myscript
$ I run in my own process!

2 个答案:

答案 0 :(得分:0)

这是一个你可以使用的简单技巧。

#!/bin/ksh
if [ ${.sh.file} != ${0} ]; then
    echo I run in the current environment
else
    echo I run in my own process
fi

答案 1 :(得分:0)

每个壳牌都有自己的PID ..

所以你可以在你的脚本中使用 echo“$$” ..它将帮助我们找到脚本RAN的位置。

即pid的差异意味着它们来自不同的shell。