在bash中运行命令然后退出而不删除命令

Tay*_*eed 1 bash if-statement

我试图在bash脚本中运行几个命令但是它会挂起我的命令等待它完成(它不会).这个脚本只是确保它的运行.

#!/bin/bash
ps cax | grep python > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  echo "Process is not running... Starting..."
  python likebot.py
  echo $(ps aux | grep python | grep -v color | awk {'print $2'})
fi
Run Code Online (Sandbox Code Playgroud)

一旦它到达python命令,它就会在执行命令时挂起.它直到我给cid之前我cntrl c.无论如何我可以让它运行这个bash脚本并在命令运行后退出bash脚本(无需等待它们完成).

Wil*_*ell 7

通常,如果要执行命令而不是等待命令,则只能使用&分隔符而不是;换行符.这样做时,该进程的pid可用于特殊变量中的shell !.如果您想等待该过程完成,您可以使用wait.如果您不想等待它,那么只需省略即可wait.在你的情况下:

python likebot.py &  # Start command asynchronously
echo $!              # echo the pid of the most recent asynchronous process
Run Code Online (Sandbox Code Playgroud)