GNU/Linux >> Belajar Linux >  >> Linux

Menyertakan Secara Kondisional Panggung Pipa Dalam Skrip Bash?

Pertanyaan ini sudah memiliki jawaban di sini :Pipa bersyarat

(7 jawaban)
Tutup 3 tahun lalu.

Saya punya skrip seperti berikut:

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

Satu-satunya perbedaan antara flag menjadi true atau false yang dibuat adalah pipe_command_b tidak boleh dijalankan. Apakah ada cara untuk menutup ini sehingga saya tidak perlu mengulangi semua hal yang umum?

Jawaban yang Diterima:

Gunakan cat alih-alih perintah jika Anda ingin melewatinya:

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

Linux
  1. Typeset -a Apakah Memberikan Kesalahan Dalam Script?

  2. Bagaimana Cara Mengatur Parameter Saat Pipa Bash Script Ke Bash?

  3. Skrip Bash - Contoh Halo Dunia

  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Pencocokan pola skrip Bash

  3. Jalankan perintah bash pada pipa jenkins

  1. Bagaimana Cara Men-debug Skrip Bash?

  2. Script Bash Untuk Mengisi Template?

  3. Cara Memisahkan String dalam Skrip Bash