Pertanyaan ini sudah memiliki jawaban di sini :Pipa bersyarat
(7 jawaban)
Tutup 3 tahun lalu.
Linux
(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