我需要它告诉我我在程序中有多少参数,但它没有按照我想要的方式工作
if [ "$#" -ne 1 ];
then
echo "Illegal number of parameters is"
me=`basename $0`
echo "File Name: $0"
echo "First Parameter : $1"
fi
答案 0 :(得分:2)
当echo
$#
变量时,它会为您提供传递给脚本的参数数量
#!/bin/bash
echo "Number of parameters passed are $#"
$ chmod u+x script.sh
$ ./script.sh apple 1 2 ball 3
Number of parameters passed are 4
答案 1 :(得分:0)
$#
包含你想要的所有内容,无论是传递给脚本的参数还是传递给函数的位置参数的数量。
#!/bin/bash
myfunc(){
echo "The number of positional parameter : $#"
echo "All parameters or arguments passed to the function: '$@'"
echo
}
printf "No of parameters passed:$#\n"
myfunc test123
myfunc 1 2 3 4 5
myfunc "this" "is" "a" "test"
像
$ ./sample.sh 1 2 3 4 5
No of parametere passed:5
The number of positional parameter : 1
All parameters or arguments passed to the function: 'test123'
The number of positional parameter : 5
All parameters or arguments passed to the function: '1 2 3 4 5'
The number of positional parameter : 4
All parameters or arguments passed to the function: 'this is a test'