我试图success
在位置参数的数量等于 1 时输出,否则出错。
#!/usr/bin/env bash
foo() {
if [[ "$#" -ne 1 ]]
then echo "error"
else
echo "success"
fi
}
foo
我用 command 执行脚本./my_script 1
。无论我使用命令还是error
运行脚本,输出始终都是。./my_script 1
./my_script 1 2
我期望./my_script 1
输出成功。
答案1
谢谢你发布新问题!查看正在使用的代码可以清楚地了解情况。
您已将一个参数传递给整个脚本,但是不函数的参数foo
!
如果你想要脚本的函数内的参数,将它们传递:
foo() {
if [[ "$#" -ne 1 ]]
then echo "error"
else
echo "success"
fi
}
foo "$@"