Linux 如何在shell中检查调用脚本
我现在有两个shell脚本,分别是a.sh和b.sh,它们都是独立运行的,并且有退出代码检查,如:Linux 如何在shell中检查调用脚本,linux,shell,Linux,Shell,我现在有两个shell脚本,分别是a.sh和b.sh,它们都是独立运行的,并且有退出代码检查,如: echo "Executing: $COMMAND" eval $COMMAND exitCode=$? exit $exitCode 对于特定场景,我需要从a.sh内部调用b.sh。 我需要检查是否从a.sh调用了b.sh,然后在执行b.sh之后控制应该传递给a.sh,否则遵循b.sh的默认行为 在shell脚本中是否有任何方法可以获得调用脚本?这样我就可以实现逻辑: if ( calling
echo "Executing: $COMMAND"
eval $COMMAND
exitCode=$?
exit $exitCode
对于特定场景,我需要从a.sh内部调用b.sh。
我需要检查是否从a.sh调用了b.sh,然后在执行b.sh之后控制应该传递给a.sh,否则遵循b.sh的默认行为
在shell脚本中是否有任何方法可以获得调用脚本?这样我就可以实现逻辑:
if ( calling script == a.sh)
then do not exit
else
follow the default behavior
您可以跟踪文件中的某些变量
set VAR = A.SH //at the beginning of a.sh
并在其他位置将其设置为其他值
如果您使用的是bash.com,则可以通过$0获取当前文件名
echo $0
您可以要求arg检查脚本b.sh中的if语句。脚本a.sh使用该参数执行脚本b.sh 脚本a
sh ./b.sh script_a
脚本b
if($1 == script_a)
//$1 means first argument, which you typed in script a
....
....
在Linux上,可以使用获取某些进程的命令行参数。shell脚本的父进程id存储在$PPID中
假设a.sh如下所示:
#! /bin/bash
./b.sh
你这样称呼它:
./a.sh
可以使用以下b.sh获取父脚本名称:
#! /bin/bash
cut -d $'\0' -f 2 /proc/$PPID/cmdline
您使用的是bash还是其他shell?