微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash脚本错误[:!=:一元运算符

在我的脚本中,我试图错误检查第一个和唯一的参数是否等于-v,但它是一个可选参数。我使用一个if语句,但我不断得到一元运算符期望的错误

这是代码

if [ $1 != -v ]; then
   echo "usage: $0 [-v]"
   exit
fi

编辑:

我应该更具体:
上面脚本的这部分是检查一个可选的参数,然后,如果没有输入参数,它应该运行程序的其余部分。

#!/bin/bash

if [ "$#" -gt "1" ]; then
   echo "usage: $0 [-v]"
   exit
fi

if [ "$1" != -v ]; then
   echo "usage: $0 [-v]"
   exit
fi

if [ "$1" = -v ]; then
   echo "`ps -ef | grep -v '\['`"
else
   echo "`ps -ef | grep '\[' | grep root`"
fi
报价!
if [ "$1" != -v ]; then

否则,当$ 1完全为空时,您的测试变为:

[ != -v ]

代替

[ "" != -v ]

…和!=不是一元运算符(即,只能取一个参数)。

原文地址:https://www.jb51.cc/bash/389238.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐