Apa bash <<syntax artinya?


10

Ruby Version Manager (RVM) diinstal seperti ini:

bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

Saya mengerti apa yang pertama <maksud (feed bash script to bash interpreter), saya bingung dengan <(...)bagian mana. Jadi, apa yang dilakukan tanda kurung di sini dan tanda kurang dari Dalam kasus apa kita bisa menggunakan sintaks yang sama?

Saya mencoba menggali di internet, menemukan pertanyaan SO ini /programming/2188199/bash-double-or-single-bracket-parentheses-curly-braces dan pertanyaan ini di ubuntuforums: http: // ubuntuforums .org / showthread.php? p = 7803008 Tetapi masih tidak tahu mengapa kami menggunakan tanda kurung itu dan mengapa kami menggunakan pengalihan input dua kali.

bash < curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer

tidak sama?

Terima kasih.


Saya pikir pertanyaan yang lebih baik adalah: Mengapa ini samabash <(curl -s ...)
Bruno Bronosky

command <(...) berfungsi ketika perintah menerima nama file di lokasi itu. Jika Anda meletakkan yang lain <sebelum perintah harus menerima input dari stdin. Beberapa perintah akan berfungsi baik dan menggunakan stdin jika tidak ada nama file yang diberikan. Jawaban yang diterima mengisyaratkan perbedaan ini.
Lee Meador

Jawaban:



5

Ini berarti "jalankan perintah di dalam tanda kurung, dan kembalikan nama file yang mewakili output standar dari perintah itu di sini".

Jadi, itu diterjemahkan menjadi dua perintah:

curl ... > something
bash -s stable < something

... di mana "sesuatu" adalah keajaiban. (Biasanya, /dev/fd/...atau pipa.)


3
tapi kenapa saya tidak bisa menggunakan ikal saja ... | bash -s stabil?
Lilás
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.