在后台运行shell脚本

时间:2010-03-09 15:31:38

标签: linux unix shell scripting

我想为用户提供在后台运行shell脚本的功能。

我的shell程序实例化了许多其他shell脚本。

以下是我的脚本的小代码片段

./main.sh  # Main script

in main.sh 

I call preprocessing.sh
create_dir.sh
handle_file.sh
post_processing.sh
report_generation.sh

我想知道是否必须启动所有子脚本..如果我必须在后台启动所有脚本,最后通过在该测试运行中显示消息来通知用户是什么语法完整。

由于

基兰

2 个答案:

答案 0 :(得分:1)

使用&在后​​台启动您的流程,然后使用bash的内置wait命令:

  wait [n ...] 
          Wait for each specified process and return its termination  sta‐ 
          tus.   Each  n  may be a process ID or a job specification; if a 
          job spec is given, all processes  in  that  job’s  pipeline  are 
          waited  for.  

有几个例子here。例如:

# wait on 2 processes
sleep 10 &
sleep 10 &
wait %1 %2 && echo "Completed!"

答案 1 :(得分:0)

添加“&”到命令的末尾

I call preprocessing.sh &
create_dir.sh &
...