2010-10-21 18 views

Respuesta

13

Desde la página de manual de bash:

-c string If the -c option is present, then commands are read from 
      string. If there are arguments after the string, they are 
      assigned to the positional parameters, starting with $0. 

Ejemplo:

$ bash -c ls 

lanzará bash y ejecutar el comando ls.

/bin/sh suele ser un enlace simbólico a un shell.

+1

¿Cómo es eso diferente sin '-c'? – user3155368

+1

Puede pasar un script como argumento, 'bash myScript', pero abrirá' myScript' e interpretará los comandos. Esto no es lo mismo que 'bash -c someCommand'. Compara lo que sucede si haces 'bash ls' y' bash -c ls', por ejemplo. – aioobe

+0

/bin/sh -c grep "cpu cores"/proc/cpuinfo | uniq | sed-e 's/[^ 0-9] El comando anterior no da el resultado deseado. ¿Por que es esto entonces? Considerando que /bin/sh -c ls | grep c funciona bien. No estoy obteniendo este comportamiento extraño. Sería genial si también puedes explicarlo. –