Qualcuno sa perché il seguente script funziona?
#a-random-junk-string
echo HI
La shell esegue il comando echo e emette HI. L'ho pensato poiché non c'è "!" dopo il "#", la shell darebbe un errore.
risposte:
12 per risposta № 1Se non c'è #! specificando un interprete specifico, il nocciolo non lo intercetterà e lo avvierà con il programma specificato.
Tuttavia, la corrente conchiglia può ancora interpretarlo come un file di comando, che è ciò che stai vedendo accadere.
1 per risposta № 2
Quando viene richiesto alla shell di eseguire un file con ilil bit dell'eseguibile è attivato, quindi esaminerà il file e determinerà se inizia con un # shebang! se lo fa, eseguirà quel comando che otterrà il testo del programma dal resto del file.
Se il file non inizia con uno shebang, la shell tenterà di eseguirlo da solo. Questo è ciò che sta accadendo per te e la shell interpreta la prima riga come un commento.