El shell usa espacios para separar el comando a ejecutar y sus parámetros.
En el primer ejemplo, el comando a ejecutar es .
con un parámetro de a.out
. El .
comando es un atajo de shell para source
, que toma el nombre de un archivo que contiene comandos de shell como su primer parámetro y ejecuta esos comandos en el shell actual. Este comando falla porque a.out
es un archivo binario, no un script de shell.
En el segundo ejemplo, el comando a ejecutar es ./a.out
, lo que significa ejecutar el archivo a.out
que reside en el directorio actual.
./program
ejecuta un archivo llamadoprogram
ubicado en su directorio de trabajo actual (./
) (en un nuevo shell para un script de shell)..
es lo mismo quesource
, que ejecuta un script de shell en su shell actual . A diferencia de./program
, ¡no se puede usar para ejecutar binarios! Como ejemplo, podría usar este comando para ejecutar su.bashrc
shell script, porque desea que este script modifique su shell actual .