Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有多个paperill命令的Bash脚本在出现笔记本错误时不会失败_Python_Bash_Jupyter Notebook_Jupyter_Papermill - Fatal编程技术网

Python 带有多个paperill命令的Bash脚本在出现笔记本错误时不会失败

Python 带有多个paperill命令的Bash脚本在出现笔记本错误时不会失败,python,bash,jupyter-notebook,jupyter,papermill,Python,Bash,Jupyter Notebook,Jupyter,Papermill,我有一个refresh\u data.sh文件,其中包含多个造纸机命令,例如: papermill notebook_1.ipynb output_1.ipynb -p start "2017-12-01" -p date "2017-12-31" papermill notebook_2.ipynb output_2.ipynb -p start "2018-01-01" -p date "2018-01-31" 如果在运行第一个笔记本时出错,进程将继续执行第二个笔记本 换句话说,其中一个笔

我有一个
refresh\u data.sh
文件,其中包含多个造纸机命令,例如:

papermill notebook_1.ipynb output_1.ipynb -p start "2017-12-01" -p date "2017-12-31"
papermill notebook_2.ipynb output_2.ipynb -p start "2018-01-01" -p date "2018-01-31"
如果在运行第一个笔记本时出错,进程将继续执行第二个笔记本

换句话说,其中一个笔记本中的错误不会“破坏”整个脚本

就我所记得的普通python脚本而言,如果bash脚本中的某个命令出现错误,就会中断整个脚本的执行


在这种情况下,bash脚本的标准行为是什么?我可以更改它,使它在出现错误时立即停止吗?

如果您的bash脚本配置为:
set-e
如果命令出错,它将失败:

您可以使用以下方式运行造纸机:

--记录输出
,以获取有关笔记本失败原因的更多信息

papermill "${INPUT_NOTEBOOK_PATH}" "${OUTPUT_NOTEBOOK_PATH}" --log-output
要捕获笔记本执行结果,您始终可以使用
$?
捕获任何先前命令的结果:

  papermill "${INPUT_NOTEBOOK_PATH}" "${OUTPUT_NOTEBOOK_PATH}" --log-output
  notebook_result=$?
  if [[ ${notebook_result} -eq 0 ]]; then
    echo "All good"
  else
    echo $notebook_result
  fi
  papermill "${INPUT_NOTEBOOK_PATH}" "${OUTPUT_NOTEBOOK_PATH}" --log-output
  notebook_result=$?
  if [[ ${notebook_result} -eq 0 ]]; then
    echo "All good"
  else
    echo $notebook_result
  fi