Apa yang dimaksud $#
dengan shell?
Saya punya kode seperti
if [ $# -eq 0 ]
then
Saya ingin mengerti apa $#
artinya, tetapi pencarian Google sangat buruk untuk mencari hal-hal semacam ini.
Apa yang dimaksud $#
dengan shell?
Saya punya kode seperti
if [ $# -eq 0 ]
then
Saya ingin mengerti apa $#
artinya, tetapi pencarian Google sangat buruk untuk mencari hal-hal semacam ini.
Jawaban:
Anda selalu dapat memeriksa halaman manual shell Anda. man bash
mengatakan:
Special Parameters
# Expands to the number of positional parameters in decimal.
Karenanya skrip shell dapat memeriksa berapa banyak parameter yang diberikan dengan kode seperti ini:
if [ "$#" -eq 0 ]; then
echo "you did not pass any parameter"
fi
man
hampir bisa apa saja, termasuk man
dirinya sendiri. Coba juga apropos
beberapa saat.
info
untuk halaman manual, atau informasi tambahan (sangat terperinci, dan terkotak) jika paket memiliki beberapa
Sebenarnya,
`$` refer to `value of` and
`#` refer to `number of / total number`
Jadi bersama
`$#` refer to `The value of the total number of command line arguments passed.`
Dengan demikian, Anda dapat menggunakan $#
untuk memeriksa jumlah argumen / parameter yang diteruskan seperti yang Anda lakukan dan menangani situasi yang tidak terduga.
Begitu pula yang kita miliki
`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`
dll.
Itu adalah
jumlah parameter yang dengannya skrip dipanggil
jumlah parameter yang telah ditetapkan dalam skrip oleh set -- foo bar
(ketika digunakan dalam suatu fungsi) jumlah parameter yang digunakan fungsi ( set
akan bekerja di sana juga).
Ini dijelaskan di halaman manual bash di blok "Parameter Khusus".