Saya memiliki skrip dari orang lain yang memiliki tampilan (catatan: ini adalah file tunggal):
#!/bin/bash
some commands
some commands
#!/bin/bash
some commands
some commands
#!/bin/bash
some commands
some commands
Saya bertanya-tanya apa tujuan dari shebang kedua dan ketiga? Apakah itu karena kesalahan atau sengaja?
bash
shell-script
shebang
Barat Sahdzijeu
sumber
sumber
#!/bin/bash
didahului oleh<<
konstruk (di sini dokumen) sebagaisome command <<end_of_script_flag
:?<<
konstruksi. Hanya shebang biasa dan beberapa perintah hapus (ini adalah uninstall script)#!
garis tambahan ?Uninstall.command
(platform: Mac OS X).Jawaban:
Jika baris-baris ini bukan awal skrip shell yang disertakan untuk dibangun, yaitu di dalam skema bentuk:
Kemudian konstruksi berulang yang Anda temukan adalah hasil dari banyak
copy
-paste
skrip shell penuh tetapi tanpa cukup perhatian dan pemahaman tentang apa yang digunakan dari komentar yang sangat istimewa ini pada baris 1 skrip, dimulai dengan#!
.Hati-hati sebelum menggunakan skrip shell seperti itu (tidak
sudo
, tidaksu
:)).sumber
/bin/rm
(+ boneka untuk memberi makan robot)!source
-d menggunakan nama. Saya tidak melihat perlunya otak tidak berkomentar. Ini bisa diterima dengan cara ini dan itulah alasan mengapa shebang adalah baris komentar.Tidak ada tujuan, ini hanya komentar. Kecuali jika 'beberapa perintah' berisi beberapa perintah yang menyimpan ini ke dalam file terpisah untuk eksekusi selanjutnya.
sumber
rm
operasi yang menghapus instalasi beberapa aplikasi. Saya pikir itu mungkin terkait dengan forking shell baru, tetapi ternyata itu copy paste kotor oleh pembuat skrip.#!
yang sama di tingkat kernel (lihatman execve
) pada sistem Unix (OpenBSD, FreeBSD, MacOS X, Kali-linux ...). Merekabash
hanya melihat ini sebagai komentar.mv ln cp dd vi ...
dengan 200 perintah lainnya? Mengapa Anda tidak menekankan mereka juga? Mereka mungkin merasa ditinggalkan.