Suponiendo que ahora estoy en un shell bash y ejecuto lo siguiente
[me@server]$ bash script.sh
q1) ¿Se ha creado un nuevo proceso de bash secundario para ejecutar el script?
Si hago un
[me@server]$ ./script.sh
q2) ¿Se ha creado un nuevo proceso de bash secundario para ejecutar el script?
q3) ¿Cuál es la diferencia entre los 2 métodos entonces?
Respuestas:
De la explicación de barra diagonal
La diferencia que haces es
con
sh
, está ejecutando un programa que funcionaráinterpret the lines in your script
tal como lo habría escrito en el indicador interactivo del terminal,con ./ estás haciendo un acceso directo suponiendo que el script está justo aquí en el directorio actual en el que estás sentado Y será ejecutable (porque, por ejemplo, emitiste chmod + x myscript.sh),
Información adicional de esta respuesta:
fuente
los dos son equivalentes, si no desea bifurcar a un niño, o si desea mantener el valor de env
script.sh
, usecuidado sin embargo
script.sh
llamada sale, saldrá del shell actual.fuente
. script
es lo mismo quesource script
- verhelp source
(en bash prompt) para más.