Le shell utilise des espaces pour séparer la commande à exécuter et ses paramètres.
Dans le premier exemple, la commande à exécuter est .
avec un paramètre de a.out
. Le .
la commande est un raccourci shell pour source
, qui prend le nom d'un fichier contenant des commandes shell comme premier paramètre et exécute ces commandes dans le shell actuel. Cette commande échoue car a.out
est un fichier binaire, pas un script shell.
Dans le deuxième exemple, la commande à exécuter est ./a.out
, ce qui signifie exécuter le fichier a.out
résidant dans le répertoire courant.
./program
exécute un fichier nomméprogram
situé dans votre répertoire de travail courant (./
) (dans un nouveau shell pour un script shell)..
est identique àsource
, qui exécute un script shell dans votre shell actuel . Contrairement à./program
, il ne peut pas être utilisé pour exécuter des binaires ! Par exemple, vous pouvez utiliser cette commande pour exécuter votre.bashrc
script shell, car vous voulez que ce script modifie votre shell actuel .