bash - 从读取验证 bash 中传递的参数数量
问题描述
我有一个关于验证用户输入关于用户在 bash 脚本中传递的参数数量的问题。例如,如果我使用:
if [[ $# -eq 2 ]]
then...
这将检查是否从命令行传递了 2 个参数,如下所示:
./somescript.sh arg1 arg2
但是如何验证用户是否在询问时传递了 2 个参数?例如:
echo "Type 2 names:"
read...
if [[ user passed more || less than 2 arguments]]
echo "incorrect number of names"
现在,如果我尝试使用$# -eq 2
它不起作用。
正确的方法是什么?
解决方案
使用数组:
read -r -a array
if [[ "${#array[@]}" -eq 2 ]]; then ...
见输出:
declare -p array
推荐阅读
- typescript - clientSecret 在护照策略 passport-google-token 中的作用是什么?
- python - 从火炬张量方法中解压和扩展的numpy等效代码
- javascript - 多次触发 Drop 事件
- python - 从不规则平面字典构建嵌套/分层字典
- html - 如何在 WordPress 中批量导入文章和图像?
- reactjs - 如何在不使用 Firebase 身份验证的情况下保护 Firebase 存储?(下一个)
- apache-spark - Calico 的网络策略不能选择 kubernetes.default 服务
- php - PHPMailer没有发布
- javascript - JS 我有一个字符串数组,'email:password',这些字符串,我需要把它变成一个分隔这些值的对象
- python - 使用 python py3270 包启动 QWS3270 并抛出错误“WinError 10061:无法进行连接,因为目标机器主动拒绝它”