veo
foo() {
if [[ $# -lt 1 ]]; then
return 0
fi
...
}
qué es exactamente lo compara con $ # como lo hace allí?
veo
foo() {
if [[ $# -lt 1 ]]; then
return 0
fi
...
}
qué es exactamente lo compara con $ # como lo hace allí?
$#
representa número de argumentos de línea de comando pasados a la secuencia de comandos.
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
Cuando se usa dentro de una función (como en su caso) que representa el número de argumentos pasados a la función:
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
$#
es la cantidad de argumentos que se pasan al script. Consulte la subsección Parámetros especiales de la sección PARÁMETROS de la página del manual bash(1)
para obtener la lista completa.
$#
= Número de argumentos pasados a la función.
en su código, la función devolverá 0 si la función no se llama con un parámetro al menos.