La shell usa gli spazi per separare il comando da eseguire ei suoi parametri.
Nel primo esempio, il comando da eseguire è . con un parametro di a.out . Il . command è una scorciatoia della shell per source , che prende il nome di un file contenente i comandi della shell come primo parametro ed esegue quei comandi nella shell corrente. Questo comando fallisce perché a.out è un file binario, non uno script di shell.
Nel secondo esempio, il comando da eseguire è ./a.out , che significa eseguire il file a.out residente nella directory corrente.
./programesegue un file chiamatoprogramche si trova nella directory di lavoro corrente (./) (in una nuova shell per uno script di shell)..è uguale asource, che esegue uno script di shell nella tua shell corrente . A differenza di./program, non può essere utilizzato per eseguire i binari! Ad esempio, puoi usare questo comando per eseguire il tuo.bashrcshell, perché vuoi che questo script modifichi la tua shell corrente .