I see
foo() {
if [[ $# -lt 1 ]]; then
return 0
fi
...
}
What exactly is it comparing by using $# as it does there?
$#
represents the number of command line arguments passed to the script.
sh-3.2$ cat a.sh
echo $# #print the number of cmd line args.
sh-3.2$ ./a.sh
0
sh-3.2$ ./a.sh foo
1
sh-3.2$ ./a.sh foo bar
2
sh-3.2$ ./a.sh foo bar baz
3
When used inside a function(as in your case) it represents the number of arguments passed to the function:
sh-3.2$ cat a.sh
foo() {
echo $# #print the number of arguments passed to the function.
}
foo 1
foo 1 2
foo 1 2 3
sh-3.2$ ./a.sh
1
2
3
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With