在linux shell中if语法的使用不知道错在哪里?

在linux shell中if语法的使用不知道错在哪里?,第1张

if [ 1 <2 ]then数值不是用“<”符号比较,应该用-lt 其它的还有:-eq 等于,等同于==-ne 不等于,等同于<>-gt大于,等同于>-lt 小于,等同于<-ge 大于等于,等同于>=-le 小于等于,等同于<=

就是字符-和字符s组成的字符串-s

strcmp语句将argv[i]地址开始的字符串与-s字符串做比较,两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

返回比较结束时的ASCII值,-的ASCII值是45H,s的ASCII值是115H

比如这语句存在main函数中,编译后成可执行程序test,运行时./test

可接参数,参数传入argv数组。比如./test

-v

则strcmp返回0即if语句条件满足;比如./test

abc

则strcmp返回ASCII差值,if语句条件不满足。你可以试试。

if [ ! -w "$logfile" ]

then echo "not writeable"

echo "not writeable again"

fi

注意空格,shell里面有的地方必须有空格,有的地方必须没有空格。[ ]前后都要有空格


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7550876.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存