Kode sederhana di sini berfungsi seperti yang diharapkan pada mesin saya jika diluncurkan dengan bash
:
function ⏰(){
date
}
⏰
Mungkinkah ada masalah bagi orang lain yang menggunakan ini, atau itu bersifat universal?
Saya ingin tahu karena saya belum pernah melihat yang seperti ini di kode sumber lain untuk saat ini.
Sunting: Ada kemungkinan tak terbatas, dapat digunakan untuk dengan cepat membedakan peran fungsi dengan penggunaan emoji misalnya.
💣 untuk sesuatu yang dapat memodifikasi atau menghapus file, 🔧 jika sedang dalam proses, 📃 untuk menu interaktif ...
Saya kira kita harus membuat standar untuk semua itu, tetapi tampaknya itu ide yang menarik.
Mungkin garis acak ~ 5 karakter dapat membantu kita memahami apa yang dilakukan kode. (Tentu saja kita perlu belajar cara membacanya.)
Lebih banyak edit: Saya mencobanya. Untuk saat ini, jika saya melipat semua fungsi saya di editor saya (Atau cat myscript.sh|grep function
) mereka terlihat seperti ini. (Unicode saya terlihat jauh lebih baik di geany
atau terminal saya dibandingkan dengan di sini.)
function ⬚_1(){
function ⬚⬚_2(){
function ⬚⬚⬚_📃_D(){
function ⬚⬚⬚⬚_📃_X(){
function ⬚⬚⬚⬚⬚_📃_Y(){
function ⬚⬚⬚⬚⬚⬚_❓_P(){
function ⬚⬚⬚⬚_📃_Z(){
function ⬚⬚⬚⬚⬚_❓_U(){
function ⬚⬚⬚⬚⬚_❓_O(){
Saya menggunakan lekukan aneh ⬚ untuk menunjukkan bagaimana fungsi terkait satu sama lain dan simbol 📃 / ❓ untuk membedakan peran mereka dengan jelas. (Tentu saja ini bukan nama fungsi saya yang sebenarnya, saya hanya menaruh huruf acak di bagian akhir, tetapi bahkan tanpa mereka kita dapat dengan jelas melihat hubungan tersebut.)
echo $foo
itu aman.Jawaban:
Pedoman yang bermanfaat untuk ini adalah "Portable Operating System Interface" (POSIX), keluarga standar yang diterapkan oleh sebagian besar sistem mirip Unix. Biasanya merupakan ide bagus untuk membatasi skrip shell ke fitur yang diamanatkan oleh POSIX untuk memastikan skrip tersebut dapat digunakan di berbagai cangkang dan platform yang berbeda.
Menurut spesifikasi definisi fungsi POSIX di "Shell Command Language" :
Mengikuti tautan ke definisi "nama" :
Set karakter itu hanya berisi karakter antara U0000 dan U007E.
Karenanya karakter seperti "⏰" (U23F0) tidak valid dalam pengidentifikasi yang sesuai dengan POSIX.
Shell Anda mungkin menerimanya, tetapi itu tidak menjamin bahwa orang lain juga akan menerimanya.
Agar dapat menggunakan skrip Anda di berbagai platform dan versi perangkat lunak, Anda harus menghindari penggunaan pengidentifikasi yang tidak patuh seperti ini.
sumber