¿Hay algún beneficio real al usar en bash -c 'some command'
exceso?bash <<< 'some command'
Parecen lograr el mismo efecto.
bash
here-string
Yosefrow
fuente
fuente
bash -c '...'
funcionará en proyectiles que no tienen herejes. Asume que bash se llamará dentro de un shell de bash, pero este no siempre será el caso.Respuestas:
bash -c 'some command'
retiene el acceso a la entrada estándar de la persona que llama, por lo que losread
comandos de lectura desde la entrada estándar funcionarán normalmente.bash <<< 'some command'
sustituye esa entrada con la línea que se pasa en, por lo quebash -c cat
ybash <<< cat
hacer cosas diferentes.Por otro lado, puede utilizar esa función para proporcionar su propia entrada estándar para utilizarla
$'...'
, si tiene mucho cuidado:No me gustaría confiar en eso, pero a veces podría ser conveniente.
bash -c
también permite que los argumentos se pasen al script y$0
se establezcan:se establecerá
$1
enabc
y$2
paradef
adentrosome command
.fuente
bash -c
que mencionan-c
, AFAIK. No del todo inútil, ya que eso puede ayudar a localizarlos.bash <<< 'script'
los errores se parecen a los del script principal;bash -c 'script'
los que no. Incluso puede etiquetarlos:bash -c 'script' label
.bash <<< 'echo $1' /dev/stdin foo
también funciona, y grabadosfoo
. Aunque la configuración$0
es algo más limitada.bash <<< 'echo "$1"' /dev/stdin foo
no siempre funciona Me pusebash <<< 'echo "$1"' -s foo
a trabajar.