Cosa significa bash <<sintassi?


10

Ruby Version Manager (RVM) installato in questo modo:

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

Capisco cosa significa prima (alimenta lo script bash all'interprete bash), sono confuso con la <(...)parte. Quindi, cosa fanno qui le parentesi e meno del segno. In quali casi possiamo usare la stessa sintassi?

Ho provato a scavare su Internet, ho trovato questa domanda SO /programming/2188199/bash-double-or-single-bracket-parentheses-curly-braces e questa domanda su ubuntuforums: http: // ubuntuforums .org / showthread.php? p = 7803008 Ma non ho ancora idea del perché utilizziamo quelle parentesi e perché utilizziamo due volte il reindirizzamento dell'input.

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

non è lo stesso?

Grazie.


Penso che le domande migliori siano: perché è lo stessobash <(curl -s ...)
Bruno Bronosky

Il comando <(...) funziona quando il comando accetta un nome file in quella posizione. Se si inserisce un altro <prima di esso, il comando deve accettare l'input da stdin. Alcuni comandi funzioneranno in entrambi i modi e utilizzeranno stdin se non viene fornito alcun nome file. La risposta accettata suggerisce questa differenza.
Lee Meador,

Risposte:



5

Significa "esegui il comando tra parentesi e restituisce un nome file che rappresenta l'output standard di quel comando qui".

Quindi, ciò si traduce in due comandi:

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

... dove "qualcosa" è la magia. (Tipicamente, /dev/fd/...o una pipa.)


3
ma perché non posso semplicemente usare il ricciolo ... | bash -s stabile?
Lilás,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.