Mengapa ketika saya mencoba menulis fungsi hanya dalam satu baris ke dalam .bashrc
file,
list(){ ls -a }
Saya mendapatkan kesalahan?
bash: /home/kasiya/.bashrc: line num: syntax error: unexpected end of file
tetapi ketika saya menulisnya dalam multi-baris tidak apa-apa?
list(){
ls -a
}
Jawaban:
Fungsi pada
bash
dasarnya adalah perintah gabungan (atau blok kode). Dariman bash
:Tidak ada alasan yang diberikan, itu hanya sintaks.
Karena daftar dalam fungsi satu baris yang diberikan tidak diakhiri dengan baris baru atau
;
,bash
komplain.sumber
Ada yang
;
dibutuhkan di akhir fungsi:harus bekerja.
Sintaks definisi fungsi untuk bash ditentukan sebagai
Perhatikan bahwa itu termasuk
;
yang bukan bagian darilist
.Yang
;
diperlukan di tempat ini adalah semacam anomali sintaksis. Ini tidakbash
spesifik, itu sama untukksh
, tetapi;
tidak diperlukan dizsh
.sumber
Akhir dari satu perintah (";") tersirat oleh baris baru. Dalam versi oneline
}
diuraikan sebagai argumen untukls -a
perintah yang tidak ditentukan . Yang dapat Anda lihat jika Anda melakukannya:Lihat bagaimana perintah di dalam deklarasi fungsi menelan tanda kurung kurawal?
sumber