Saat ini saya punya satu-liner seperti ini:
curl -fsSL http://git.io/vvZMn | bash
Itu sedang mengunduh skrip dan meneruskannya ke bash sebagai file stdin. Saya ingin menjalankan skrip ini dengan argumen tambahan print
.
Mungkin kira-kira seperti ini?
curl -fsSL http://git.io/vvZMn | bash -- print
Tetapi ini tidak berhasil.
print
dari sini? Tampilkan perintah yang sedang dijalankan? Jika ya, cobabash -x
. Catatan:curl | bash
rutin ini adalah lubang keamanan besar; Anda tidak dapat melihat apa yang akan dijalankan sampai server Anda telah dikonfigurasikan.Jawaban:
Saya percaya apa yang Anda cari adalah
-s
pilihannya. Dengan-s
, Anda bisa meneruskan argumen ke skrip.Sebagai contoh tiruan untuk menggambarkan ini:
Di sini, Anda dapat melihat bahwa skrip yang disediakan pada stdin diberikan parameter posisi
Print
. Script Anda mengambil-u UUID
argumen dan itu dapat diakomodasi juga:Jadi, dalam kasus Anda:
Atau,
Seperti yang ditunjukkan Stephen Harris, mengunduh skrip dan menjalankannya, tidak terlihat, merupakan masalah keamanan.
sumber
Jika sistem Anda memiliki
/dev/stdin
, Anda dapat menggunakanJangan tidak melakukan hal ini:
Jika Anda ingin menggunakan
--
, lakukan ini:sumber