Linux 在bash中逐个运行多个脚本

Linux 在bash中逐个运行多个脚本,linux,bash,shell,command-line,Linux,Bash,Shell,Command Line,我试图一个接一个地运行三个脚本。一个要求用户输入一个文件。这些脚本都是单独运行的,当我将一些脚本与&&组合使用时,它们可以工作,但当我尝试将这三个脚本组合使用时,却失败了。他们需要彼此工作,所以应该是script1.sh->script2.sh->script3.pl script1.sh需要输入2个文件 script2.sh需要输出一个.csv文件 script3.pl在创建的.csv文件上运行,需要一个我想提示用户输入的输入 每一个都需要很长时间才能运行,所以我也尝试让它们在后台使用nohu

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

  • script1.sh需要输入2个文件
  • script2.sh需要输出一个.csv文件
  • script3.pl在创建的.csv文件上运行,需要一个我想提示用户输入的输入 每一个都需要很长时间才能运行,所以我也尝试让它们在后台使用
    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的组合也可以,但我正在尝试将这三者结合起来。

    尝试以下方法:

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

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

    #!/bin/bash
    script1.sh file1 file2
    script2.sh > file.csv
    script3.pl --input "$1"
    
    然后您可以运行:

    nohup ./combined "answer" & 
    

    您是否尝试过将所有3行保存在一个shell脚本中,比如说
    combined.sh
    ,然后使用
    nohup combined.sh&
    执行它?我仍然需要能够将问题输入到script3.pl中,但您似乎可以在顶部问这个问题?为什么不使用
    read-p“Question?”来运行它,然后回答
    nohup combined.sh file1 file2$answer&
    ?如果没有
    nohup
    ,这是否有效?这可能使事情复杂化;理想情况下,您希望通过
    nohup
    运行整个命令链,而不仅仅是
    script1.sh$1$2
    。另一个想法是使用
    &&
    ,当一个命令退出时会出现故障代码。请尝试使用分号(
    ),我认为运行上述命令的shell本身不受SIGHUP的保护。因此,即使您在执行时注销,
    script1.sh
    不会被SIGHUP停止,但需要运行
    script2.sh
    script3.sh
    的shell将退出。。。因此,不要管理它们。