在bash中一个接一个地运行多个脚本

时间:2016-07-01 19:10:34

标签: linux bash shell command-line

我正在尝试一个接一个地运行三个脚本。一个需要用户输入文件。这些脚本都是单独运行的,当我将它们与&& 结合起来时,它们可以工作,但是当我尝试将这三个脚本组合起来时,它会失败。他们需要彼此工作,所以应该去 script1.sh - > script2.sh - > script3.pl

  1. script1.sh 需要输入2个文件
  2. script2.sh 需要输出 .csv
  3. script3.pl 在创建的 .csv 上运行,需要一个我想提示用户输入的输入。
  4. 每个都需要很长时间才能运行,因此我也尝试让它们在nohup的后台运行。它们按如下方式单独运行:

    script1.sh file1 file2
    
    script2.sh > file.csv
    
    script3.pl --input answer    
    

    我尝试过使用以下内容;

    echo -n "Question?  "
    read answer
    nohup script1.sh $1 $2 && script2.sh > file.csv && script3.pl --input $answer &
    

    它可以使用 script2.sh script3.pl 这个问题,但是当我有 script1.sh 它不会工作。 Script1.sh script2.sh 组合也可以使用,但我正在尝试将三者结合起来。

2 个答案:

答案 0 :(得分:1)

试试这个:

read -p "Question?  " answer ; \
nohup script1.sh file1 file2    && \
nohup script2.sh > file.csv     && \
nohup script3.pl --input $answer &

答案 1 :(得分:0)

我认为您需要这样的组合脚本 - 另存为combined

#!/bin/bash
script1.sh file1 file2
script2.sh > file.csv
script3.pl --input "$1"

然后你可以运行:

nohup ./combined "answer" &