GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Mengatur Parameter Saat Pipa Bash Script Ke Bash?

Pertanyaan ini sudah memiliki jawaban di sini :Cara menyampaikan argumen ke skrip yang diinput ke bash

(2 jawaban)
Tutup 9 bulan yang lalu.

Cara menjalankan skrip bash dengan parameter:

./foo.sh a b c

Saat dikompresi (misalnya menggunakan xz ).

 xzcat foo.sh | bash <<how_to_supply_here_parameters?>>

Kasus penggunaan khusus:

Saya menghasilkan rmlint.sh yang sangat besar file dan simpan dengan kompresi:

time rmlint -o sh:stdout -c sh:hardlink|tee >( xz > rmlint.sh.xz )

Oleh karena itu saya biasanya akan mengeksekusi

./rmlint.sh -d -x -p

Namun, file terlalu besar untuk tidak dikompresi. Oleh karena itu saya ingin melakukan hal yang sama dengan menyalurkannya ke bash:

xzcat rmlint.sh.xz | bash ...

Jawaban yang Diterima:

Anda harus menggunakan -s opsi dan -- untuk memisahkan argumen yang ingin Anda sampaikan:

echo 'echo "[email protected]"' | sh -s 3 4 5

echo 'printf "{%s}" "$0"; printf " {%s}" "[email protected]"; echo' |
    sh -s -- -d -x -p --foo=bar
{sh} {-d} {-x} {-p} {--foo=bar}

Ini harus bekerja dengan shell POSIX apa pun, bukan hanya bash . Dari susv4:

-s Baca perintah dari input standar.

Jika tidak ada operan dan -c opsi tidak ditentukan, -s opsi harus diasumsikan.


Linux
  1. Bagaimana Cara Mengatur Bash Untuk Menjalankan *.exe Dengan Mono?

  2. Cara Memisahkan String dalam Skrip Bash

  3. Bagaimana cara menjalankan skrip bash?

  1. Di Bash, Kapan Alias ​​​​Kapan Skrip, Dan Kapan Menulis Fungsi?

  2. Bagaimana Cara Men-debug Skrip Bash?

  3. Bagaimana Cara Menambahkan Baris Baru Ke Variabel Dalam Skrip Bash?

  1. Bagaimana Memanggil Fungsi Bash Dalam Skrip Bash Di Dalam Awk?

  2. Menyertakan Secara Kondisional Panggung Pipa Dalam Skrip Bash?

  3. Bash Script - Cara Membaca Input Pengguna