shell中if后面的判断语句用不用[]括起来有什么区别?

洛阳山 2016-10-19 02:23:11
1 #!/bin/bash
2
3 SUCCESS=0
4 FAILURE=-1
5
6 isdigit()
7 {
8 [ $# -eq 1 ]||return $FAILURE
9
10 case $1 in
11 *[!0-9]*|" ") return $FAILURE;;
12 *) return $SUCCESS;;
13 esac
14 }
15
16 number=78
17 number2=98
18 #isdigit $number
19 #echo $?
20 #if isdigit "$number" && isdigit "$number2"
21 if [ isdigit "$number" ]
22 then
23 echo "yes"
24 else
25 echo "error"
26 fi
代码第21行会报错,用20行的可以
...全文
631 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nswcfd 2016-10-28
  • 打赏
  • 举报
回复
那不是例子,那是从man bash里摘要出来的相关语法部分。
HBack 2016-10-24
  • 打赏
  • 举报
回复
引用 1 楼 nswcfd 的回复:
if后面接 command list,可以是函数 [后面只能是condition expression. list; then list; [ elif list; then list; ] ... [ else list; ] fi [[ expression ]]
你的解释看懂了。但是例子没怎么看懂,呵呵
nswcfd 2016-10-20
  • 打赏
  • 举报
回复
if后面接 command list,可以是函数 [后面只能是condition expression. list; then list; [ elif list; then list; ] ... [ else list; ] fi [[ expression ]]

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧