Co $#
znaczy w skorupce?
Mam kod taki jak
if [ $# -eq 0 ]
then
Chcę zrozumieć, co to $#
znaczy, ale wyszukiwanie w Google jest bardzo złe w wyszukiwaniu tego rodzaju rzeczy.
shell
shell-script
BufBills
źródło
źródło
Odpowiedzi:
Zawsze możesz sprawdzić stronę podręcznika swojej powłoki.
man bash
mówi:Dlatego skrypt powłoki może sprawdzić, ile parametrów podano w kodzie:
źródło
man
prawie wszystko, w tymman
siebie. Spróbuj takżeapropos
trochę czasu.info
albo strony podręcznika, albo dodatkowych informacji (bardzo szczegółowe i podzielone na przedziały), jeśli pakiety mają jakieśTak właściwie,
Więc razem
W ten sposób możesz użyć
$#
do sprawdzenia liczby przekazanych argumentów / parametrów tak jak zrobiłeś i obsłużyć wszelkie nieoczekiwane sytuacje.Podobnie mamy
itp.
źródło
To jest
liczba parametrów, z którymi skrypt został wywołany
liczba parametrów, które zostały ustawione w skrypcie przez
set -- foo bar
(w przypadku użycia w ramach funkcji) liczba parametrów, z którymi funkcja została wywołana (
set
również tam działałaby).Jest to wyjaśnione na stronie podręcznika użytkownika bash w bloku „Parametry specjalne”.
źródło