在Bash循环中运行Python脚本

时间:2018-04-28 20:49:46

标签: python bash loops

我有一个python脚本,它只能在抛出错误之前执行有限次数(在终端上)。我需要多次执行它。

是否可以使用Bash脚本中的循环执行此操作?我知道Bash脚本可以从终端读取命令的输出,但我不知道如何解决这个问题。

我试图在这个网站上搜索这个问题,但我一无所获。对不起,如果之前有人询问过。

修改

我可以修改Python脚本以根据执行是否成功返回值。我想知道的是,如何在Bash脚本的循环中读取此返回值。如果执行成功,则必须再次执行Python脚本。如果没有,它必须退出。

如果有其他方式,也欢迎。

2 个答案:

答案 0 :(得分:0)

你可以将代码放在一些可执行文件中。只需将您的启动脚本命令替换为

即可
  

" #Type在这里启动命令"

一部分。脚本将检查对等300秒,如果进程未运行,将启动。当然,如果您提供更清晰的信息,您可以进行优化。

然后通过以下方式调用脚本:

nohup ./executable.sh > Log.log &

#!/bin/bash


checkProcess() {
    process=$1
    if [ ${#process} != 0 ]; then
        while true ; do
             processID=$(ps -ef | grep -v grep| grep  "$process"| wc -l)
             if [ ${#processID} == 1 ]; then
                  echo "$(date) : Process is running "
             elif [ ${#processID} -gt 1 ]; then
                  echo "$(date) : Seems more than process running "
             else
                  echo "$(date) : Process is not running"
                  #Type start command here
             fi
             sleep 300s
         done
    else
        echo "You did not passed argument. Please provide process information for GREP"
    fi
} 

checkProcess scriptName

答案 1 :(得分:0)

在命令行上

user@darkstar:~$ for i in `seq 1 100`; do; ./run_the_python; done

100替换为您的最大值./run_the_python,并使用适合启动python脚本的任何内容。