为了账号安全,请及时绑定邮箱和手机立即绑定

检查Bash shell脚本中是否存在输入参数

检查Bash shell脚本中是否存在输入参数

慕斯709654 2019-09-06 17:29:58
我需要检查输入参数是否存在。我有以下脚本if [ "$1" -gt "-1" ]  then echo hifi我明白了[: : integer expression expected如何首先检查输入参数1以查看它是否存在?
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

它是:


if [ $# -eq 0 ]

  then

    echo "No arguments supplied"

fi

该$#变量将告诉您脚本传递的输入参数的数量。


或者您可以检查参数是否为空字符串或不是:


if [ -z "$1" ]

  then

    echo "No argument supplied"

fi

该-z开关是检验的“$ 1”的扩张是一个空字符串或没有。如果它是一个空字符串,则执行正文。


查看完整回答
反对 回复 2019-09-06
?
墨色风雨

TA贡献1853条经验 获得超6个赞

最好以这种方式进行演示


if [[ $# -eq 0 ]] ; then

    echo 'some message'

    exit 1

fi

如果参数太少,通常需要退出。


查看完整回答
反对 回复 2019-09-06
?
森栏

TA贡献1810条经验 获得超5个赞

在某些情况下,您需要检查用户是否将参数传递给脚本,如果没有,则返回默认值。如下面的脚本:


scale=${2:-1}

emulator @$1 -scale $scale

这里如果用户没有scale作为第二个参数传递,我-scale 1默认启动Android模拟器。${varname:-word}是一家扩张运营商。还有其他扩展运营商:


${varname:=word}其中设置所述未定义varname的而不是返回word值;

${varname:?message}varname如果它被定义并且不为null则返回,或者打印message并中止脚本(如第一个例子);

${varname:+word}返回word如果只varname被定义并且不为空; 否则返回null。


查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 3556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信