首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查bash脚本中是否至少提供了两个参数

检查bash脚本中是否至少提供了两个参数
EN

Stack Overflow用户
提问于 2011-11-03 09:58:44
回答 2查看 44.4K关注 0票数 33

我正在尝试编写一个脚本,它模仿cp,其中有源输入和目标输入。如何计算命令行中给出的参数数量

例如

./myscript src目标

检查是否至少给出了2件东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-03 10:00:45

使用$#特殊变量。它的值是参数的数量。因此,如果您的脚本仅包含以下内容:

代码语言:javascript
复制
echo $#

并像这样执行它:

代码语言:javascript
复制
thatscript foo bar baz quux

它将打印4。

在您的情况下,您可能希望执行以下操作:

代码语言:javascript
复制
if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi
票数 58
EN

Stack Overflow用户

发布于 2014-11-08 04:45:10

按照问题中的要求,参数应该包含“至少两件事”,我认为检查可能更准确:

代码语言:javascript
复制
if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

使用arithmetic expansion (( ))将防止任何值不等于2时命中exit 1

如果您使用if [ $# -ne 2 ];,它将为除2以外的任意数量的参数触发条件。

编辑:看起来被接受的答案已经被更新,包括一个等效的答案(更便携?)这是一个例子。

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7989486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档