如果子脚本中缺少目录,则暂停父脚本

时间:2016-01-18 10:25:11

标签: shell

我有两个脚本:Script1:提供一个路径(目录)作为另一个目录的输入,script2扫描该目录并创建该inout目录中缺少的任何路径或文件的日志。现在我想要停止script1(如果有的话)路径或文件丢失,但我的第二个脚本应完成扫描整个目录(作为输入)。

简而言之,我的日志应该是完整的,我的第一个脚本应该暂停(如果文件丢失)

2 个答案:

答案 0 :(得分:0)

方法1(我最喜欢的):

确保脚本2返回正确的退出代码(通常为0,如果一切正常,则为1,如果发生错误,即缺少其中一个文件)。查询Script1中的退出代码,如果退出代码不为零,则终止Script1。

方法2:

让Script1检查script2创建的日志文件的长度。如果长度为零,或者日志文件不存在,则终止Script1。

答案 1 :(得分:0)

我做了什么: 在脚本中,一个调用脚本2,并在下一行中捕获先前可执行命令的退出状态(即调用两秒脚本)。 在他的第二个脚本中,我保留了一个标志以获得退出状态。 在第一个脚本中:

  $script_path/firstScript.sh 
  if [ "$?" -eq 1 ]; then
    exit 1
  fi

在第二个脚本中:

if [ "$errorCode" -eq 0 ]; then
  echo "$(timestamp) INFO tid=\"$tid\"   ========== Success"
else
 echo "$(timestamp) INFO tid=\"$tid\"   ========== Script executed with errors,Check missing files ========== "
 echo "$(timestamp) INFO tid=\"$tid\"  Script executed with errors,Check logger for more information "
 exit 1
fi