Saya tahu bahwa skrip shell hanya menjalankan perintah seolah-olah dieksekusi pada command prompt. Saya ingin dapat menjalankan skrip shell seolah-olah itu adalah fungsi… Yaitu, mengambil nilai input atau string ke dalam skrip. Bagaimana pendekatan saya untuk melakukan ini?
Jawaban yang Diterima:
Perintah shell dan argumen apa pun untuk perintah itu muncul sebagai bernomor variabel shell:$0
memiliki nilai string dari perintah itu sendiri, seperti script
, ./script
, /home/user/bin/script
atau terserah. Setiap argumen muncul sebagai "$1"
, "$2"
, "$3"
dan seterusnya. Hitungan argumen ada di variabel shell "$#"
.
Cara umum untuk menangani ini melibatkan perintah shell getopts
dan shift
. getopts
sangat mirip dengan C getopt()
fungsi perpustakaan. shift
memindahkan nilai $2
ke $1
, $3
ke $2
, dan seterusnya; $#
akan berkurang. Kode akhirnya melihat nilai "$1"
, melakukan sesuatu menggunakan case
…esac
untuk memutuskan suatu tindakan, dan kemudian melakukan shift
untuk memindahkan $1
ke argumen berikutnya. Itu hanya harus memeriksa $1
, dan mungkin $#
.