shell里if-then的使用
命令格式 if command then commands fi 或者 if command ; then commands fi 注意command后面有个分号(;) shell里面会运行if后面的command命令。如果运行之后,该命令退出状态为0,则只需then后面的commands命令。这点和其他编程语言不一样。其他编程语言是,如果if后面的条件为TRUE或者false来判断。 if-then 不能测试命令退出状态码以外的条件。但在bash中有个好工具可以通过test命令来测试其他条件 test command如果后面的condition满足的话,test命令退出并返回状态码0。如果条件不成立,则退出并返回非0的状态码。 除此之外,可以直接用方括号( [ ] )来替代test命令 if [ condition ]需要注意的是 , 方括号与condtion前后都必须留有空格,否则会报错 条件比较类型分为三类; 1)数值比较。 2)字符串比较 3)文件比较 if-then高级特性: 1)用于数学表达式的双括号(()) ((expression))双括号命令允许在比较过程中使用高级数学表达式。test比较命令只能使用简单的算数操作,而双括号可以使用更多的数学符号。 如:++,--,!(取反),~(位取反),**(幂运算),<<,>>,&,|,&&,|| 2)用于高级字符串处理功能的双方括号[[]] [[expression]]双方括号提供了针对字符串比较的高级特性。有一个模式匹配功能。 例如: if [[ $USER == r*]] then echo "Hello $USER" else echo "Sorry,I don't know you" fi这个例子里,判断当前用户是否是以r开头。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |