GNU/Linux >> Linux Esercitazione >  >> Linux

Includere condizionatamente uno stage di pipe in uno script Bash?

Questa domanda ha già risposte qui :Gasdotto condizionale

(7 risposte)
Chiuso 3 anni fa.

Ho uno script come il seguente:

flag=false
# Do a bunch of stuff that might set flag to true.
if [[ "$flag" == "true" ]]; then
   command \
       | pipe_command_a \
       | pipe_command_b \
       | pipe_command_c \
       | pipe_command_d \
       > "${output_path}"
else
   command \
       | pipe_command_a \
       | pipe_command_c \
       | pipe_command_d \
       > "${output_path}"
fi

L'unica differenza tra flag essendo true o false fa è che pipe_command_b potrebbe non essere eseguito. C'è un modo per comprimerlo in modo da non dover ripetere tutte le cose comuni?

Risposta accettata:

Usa cat invece del comando se vuoi saltarlo:

command=cat
if [[ $flag == true ]] ; then
    command=pipe_command_b
fi
command \
    | pipe_command_a \
    | $command       \
    | pipe_command_c

Linux
  1. Come eseguire il debug di uno script Bash?

  2. Digitare -a sta dando un errore nello script?

  3. Script Bash per compilare un modello?

  4. Come impostare i parametri quando Pipe Bash Script su Bash?

  5. Script Bash - Esempio Hello World

35 Esempi di script Bash

Come eseguire uno script Bash

Uno script Bash può essere agganciato a un file?

Script di Bash per centrare Fortune/testo da Stdin/pipe?

Esegui lo script bash come demone

Aggiungi uno script bash al percorso