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.
./program
esegue un file chiamatoprogram
che 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.bashrc
shell, perché vuoi che questo script modifichi la tua shell corrente .