<Sebelum | Contents [show] | Seterusnya>
Teruskan Skrip Berjalan
Semasa membangunkan program kami, adalah berguna untuk memastikan program dalam keadaan boleh dijalankan. Dengan melakukan ini, dan menguji dengan kerap, kami dapat mengesan ralat pada awal proses pembangunan. Ini akan menjadikan masalah penyahpepijatan lebih mudah. Sebagai contoh, jika kita menjalankan program, membuat perubahan kecil, kemudian menjalankan program sekali lagi dan mencari masalah, kemungkinan besar perubahan terbaru adalah punca masalah. Dengan menambah fungsi kosong, dipanggil rintisan dalam programmer-speak, kami boleh mengesahkan aliran logik program kami pada peringkat awal. Apabila membina stub, adalah idea yang baik untuk memasukkan sesuatu yang memberikan maklum balas kepada pengaturcara, yang menunjukkan aliran logik sedang dijalankan. Jika kita melihat output skrip kita sekarang:
[saya@linuxbox ~]$ sys_info_page
Laporan Maklumat Sistem Untuk twin2
[saya@linuxbox ~]$ sys_info_page
Laporan Maklumat Sistem Untuk twin2
Laporan Maklumat Sistem Untuk linuxbox
Dijana 03/19/2009 04:02:10 PM EDT, oleh saya
Laporan Maklumat Sistem Untuk linuxbox
Dijana 03/19/2009 04:02:10 PM EDT, oleh saya
kami melihat bahawa terdapat beberapa baris kosong dalam output kami selepas cap waktu, tetapi kami tidak dapat memastikan puncanya. Jika kami menukar fungsi untuk memasukkan beberapa maklum balas:
report_uptime () {
echo "Fungsi report_uptime dilaksanakan."
pulangan
}
report_disk_space () {
echo "Fungsi report_disk_space dilaksanakan."
pulangan
}
report_home_space () {
echo "Fungsi report_home_space dilaksanakan."
pulangan
}
report_uptime () {
echo "Fungsi report_uptime dilaksanakan."
pulangan
}
report_disk_space () {
echo "Fungsi report_disk_space dilaksanakan."
pulangan
}
report_home_space () {
echo "Fungsi report_home_space dilaksanakan."
pulangan
}
dan jalankan skrip sekali lagi:
[saya@linuxbox ~]$ sys_info_page
Laporan Maklumat Sistem Untuk linuxbox
Laporan Maklumat Sistem Untuk linuxbox
Dijana 03/20/2009 05:17:26 PG EDT, oleh saya Fungsi report_uptime dilaksanakan.
Fungsi report_disk_space dilaksanakan. Fungsi report_home_space dilaksanakan.
[saya@linuxbox ~]$ sys_info_page
Laporan Maklumat Sistem Untuk linuxbox
Laporan Maklumat Sistem Untuk linuxbox
Dijana 03/20/2009 05:17:26 PG EDT, oleh saya Fungsi report_uptime dilaksanakan.
Fungsi report_disk_space dilaksanakan. Fungsi report_home_space dilaksanakan.
Teruskan Skrip Berjalan
kita kini melihat bahawa, sebenarnya, tiga fungsi kita sedang dilaksanakan.
Dengan rangka kerja fungsi kami sedia ada dan berfungsi, sudah tiba masanya untuk menyempurnakan beberapa kod fungsi. Pertama, yang report_uptime fungsi:
report_uptime () {
kucing <<- _EOF_
Masa Beroperasi Sistem
$(uptime)
_EOF_
pulangan
}
report_uptime () {
kucing <<- _EOF_
Masa Beroperasi Sistem
$(uptime)
_EOF_
pulangan
}
Ia agak mudah. Kami menggunakan dokumen di sini untuk mengeluarkan pengepala bahagian dan output uptime perintah, dikelilingi oleh tag untuk mengekalkan pemformatan arahan. The report_disk_space fungsi adalah serupa:
report_disk_space () {
kucing <<- _EOF_
Penggunaan Ruang Cakera
$(df -h)
_EOF_
pulangan
}
report_disk_space () {
kucing <<- _EOF_
Penggunaan Ruang Cakera
$(df -h)
_EOF_
pulangan
}
Fungsi ini menggunakan df -h arahan untuk menentukan jumlah ruang cakera. Akhir sekali, kami akan membina report_home_space fungsi:
report_home_space () {
kucing <<- _EOF_
Penggunaan Ruang Rumah
$(du -sh /home/*)
_EOF_
pulangan
}
report_home_space () {
kucing <<- _EOF_
Penggunaan Ruang Rumah
$(du -sh /home/*)
_EOF_
pulangan
}
Kami menggunakan du perintah dengan -sh pilihan untuk melaksanakan tugas ini. Ini, bagaimanapun, bukanlah penyelesaian lengkap kepada masalah tersebut. Walaupun ia akan berfungsi pada sesetengah sistem (Ubuntu, contohnya), ia tidak akan berfungsi pada yang lain. Sebabnya ialah banyak sistem menetapkan kebenaran direktori rumah untuk menghalangnya daripada boleh dibaca dunia, yang merupakan langkah keselamatan yang munasabah. Pada sistem ini, report_home_space fungsi, seperti yang tertulis, akan
hanya berfungsi jika skrip kami dijalankan dengan keistimewaan superuser. Penyelesaian yang lebih baik ialah meminta skrip menyesuaikan tingkah lakunya mengikut keistimewaan pengguna. Kami akan membincangkan perkara ini dalam bab seterusnya.
Shell Berfungsi Dalam Fail .bashrc Anda
Fungsi Shell membuat penggantian yang sangat baik untuk alias, dan sebenarnya kaedah pilihan untuk mencipta arahan kecil untuk kegunaan peribadi. Alias sangat terhad dalam jenis perintah dan ciri shell yang mereka sokong, manakala fungsi shell membenarkan apa-apa sahaja yang boleh diskripkan. Sebagai contoh, jika kita menyukai report_disk_space fungsi shell yang kami bangunkan untuk skrip kami, kami boleh mencipta fungsi serupa bernama ds Untuk kami .bashrc fail:
ds () {
echo “Penggunaan Ruang Cakera Untuk $HOSTNAME” df -h
}