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.
./programexécute un fichier nomméprogramsitué 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.bashrcscript shell, car vous voulez que ce script modifie votre shell actuel .