GNU/Linux >> Znalost Linux >  >> Linux

Podmíněně zahrnout fázi potrubí do skriptu Bash?

Tato otázka zde již obsahuje odpovědi :Podmíněný kanál

(7 odpovědí)
Uzavřeno před 3 lety.

Mám skript podobný následujícímu:

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

Jediný rozdíl mezi flag je true nebo false dělá je, že pipe_command_b nemusí být spuštěn. Existuje způsob, jak to sbalit, abych nemusel opakovat všechny běžné věci?

Přijatá odpověď:

Použijte cat místo příkazu, pokud jej chcete přeskočit:

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

Linux
  1. Jak rozdělit řetězec ve skriptu Bash

  2. Bash Script - příklad Hello World

  3. Spusťte bash skript z adresy URL

  1. Může být Bash skript připojen k souboru?

  2. alternativy --config java bash skript

  3. Porovnávání vzorů skriptů Bash

  1. Sazba -a Je zadávání chyby ve skriptu?

  2. Bash skript k vyplnění šablony?

  3. Jak nastavit parametry, když Pipe Bash Script to Bash?