bash – 一元运算符
发布时间:2020-12-15 16:49:40 所属栏目:安全 来源:网络整理
导读:我一直在试图弄清楚这是什么问题,但只是不能算出来。 这是部分似乎得到一个错误.. elif [ $operation = "man" ]; then if [ $aug1 = "add" ]; then # - Line 75 echo "Man Page for: add" echo "" echo "Syntax: add [number 1] [number 2]" echo "" echo "
我一直在试图弄清楚这是什么问题,但只是不能算出来。
这是部分似乎得到一个错误.. elif [ $operation = "man" ]; then if [ $aug1 = "add" ]; then # <- Line 75 echo "Man Page for: add" echo "" echo "Syntax: add [number 1] [number 2]" echo "" echo "Description:" echo "Add two different numbers together." echo "" echo "Info:" echo "Added in v1.0" echo "" elif [ -z $aug1 ]; then echo "Please specify a command to read the man page." else echo "There is no manual page for that command." fi 我得到这个错误: calc_1.2: line 75: [: =: unary operator expected
如果你知道你总是使用bash,总是使用双括号条件复合命令[[…]],而不是Posix兼容的单括号版本[…]更容易。在一个[[…]]复合,分词和路径名扩展不应用于单词,所以你可以依靠
if [[ $aug1 == "and" ]]; 比较$ aug1的值和字符串和。 如果你使用[…],你总是需要记住双引号变量,像这样: if [ "$aug1" = "and" ]; 如果你不引用变量扩展和变量是未定义或空,它从犯罪现场消失,只留下 if [ = "and" ]; 这不是有效的语法。 (如果$ aug1包含空格或shell元字符,它也会失败,并显示不同的错误消息。) 现代的[[操作符有很多其他不错的功能,包括正则表达式匹配。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |