/ / Bash Script esegue i comandi da un file, ma se cancella per saltare su quello successivo - bash

Bash Script esegue i comandi da un file ma se cancella per saltare su quello successivo - bash

Sto cercando di creare uno script per eseguire una serie di comandi da un file

il file per esempio ha un set di 3 comandi perl script-a, perl script-b, perl script-c, ogni comando su una nuova riga e ho fatto questo script

#!/bin/bash
for command in `cat file.txt`
do
echo $command
perl $command

done

Il problema è che alcuni script rimangono bloccati oci vuole troppo tempo per finire e voglio vedere le loro uscite. È possibile creare lo script bash nel caso in cui invio CTRL + C sul comando corrente che viene eseguito per passare al comando successivo nel file txt per non cancellare lo script di bash wole.

Grazie

risposte:

4 per risposta № 1

Puoi usare trap "continue" SIGINT ignorare Ctrl + c:

#!/bin/bash
# ignore & continue on Ctrl+c (SIGINT)
trap "continue" SIGINT

while read command
do
echo "$command"
perl "$command"
done < file.txt

# Enable Ctrl+c
trap SIGINT

Inoltre non hai bisogno di chiamare cat leggere il contenuto di un file.


0 per risposta № 2
#!/bin/bash
for scr in $(cat file.txt)
do
echo $scr

# Only if you have a few lines in your file.txt,
# Then, execute the perl command in the background
# Save the output.
# From your question it seems each of these scripts are independent

perl $scr &> $scr_perl_execution.out &

done

È possibile controllare ciascun output per vedere se il comando sta facendo come previsto. Se no, puoi usare kill per terminare ciascun comando.