Ini berjalan karena secara default file executable diasumsikan sebagai skrip / bin / sh. Yaitu jika Anda tidak menentukan shell tertentu - itu adalah #! / Bin / sh.
// hanya diabaikan di jalur - Anda dapat menganggapnya sebagai '/' tunggal.
Jadi Anda dapat mempertimbangkan bahwa Anda memiliki skrip shell dengan baris pertama:
/usr/bin/env go run $0 $@ ; exit
Apa yang dilakukan garis ini? Ini berjalan 'env' dengan paramenters 'go run $ 0 $ @'. ada 'go' adalah perintah dan 'jalankan $ 0 $ @' adalah argumen dan keluar dari skrip setelahnya. $ 0 adalah nama skrip ini. $ @ adalah argumen skrip asli. Jadi baris ini berjalan pergi yang menjalankan skrip ini dengan argumennya
Ada detail yang cukup menarik, seperti yang ditunjukkan dalam komentar, bahwa dua garis miring didefinisikan implementasi, dan skrip ini akan menjadi POSIX-benar jika menetapkan tiga garis miring atau lebih. Rujuk ke http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html untuk perincian tentang cara penanganan garis miring di jalur.
Perhatikan juga bahwa ada kesalahan lain dalam skrip $ @ itu benar untuk menggunakan "$ @" sebagai gantinya, karena jika tidak ada parameter yang mengandung spasi maka akan dipecah menjadi banyak parameter. Misalnya Anda tidak dapat memasukkan nama file dengan spasi jika Anda tidak menggunakan "$ @"
Skrip khusus ini jelas bergantung pada gagasan bahwa '//' sama dengan '/'
//&>/dev/null;x="${0%.*}";[ ! "$x" -ot "$0" ]||(rm -f "$x";cc -o "$x" "$0")&&exec "$x" "$@"
...