linux if -n?linux中if命令
大家好,今天给各位分享linux if -n的一些知识,其中也会对linux中if命令进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
Linux里面if -s命令作用是什么
字符串判断
str1= str2当两个串有相同内容、长度时为真
str1!= str2当串str1和str2不等时为真
-n str1当串的长度大于0时为真(串非空)
-z str1当串的长度为0时为真(空串)
str1当串str1为非空时为真
2、数字的判断
int1-eq int2两数相等为真
int1-ne int2两数不等为真
int1-gt int2int1大于int2为真
int1-ge int2int1大于等于int2为真
int1-lt int2int1小于int2为真
int1-le int2int1小于等于int2为真
3文件的判断
-r file用户可读为真
-w file用户可写为真
-x file用户可执行为真
-f file文件为正规文件为真
-d file文件为目录为真
-c file文件为字符特殊文件为真
-b file文件为块特殊文件为真
-s file文件大小非0时为真
-t file当文件描述符(默认为1)指定的设备为终端时为真
3、复杂逻辑判断
-a与
-o或
!非
EXAMPLE:
[-a FILE ]如果 FILE存在则为真。
[-b FILE ]如果 FILE存在且是一个块特殊文件则为真。
[-c FILE ]如果 FILE存在且是一个字特殊文件则为真。
[-d FILE ]如果 FILE存在且是一个目录则为真。
[-e FILE ]如果 FILE存在则为真。
[-f FILE ]如果 FILE存在且是一个普通文件则为真。
[-g FILE ]如果 FILE存在且已经设置了SGID则为真。
[-h FILE ]如果 FILE存在且是一个符号连接则为真。
[-k FILE ]如果 FILE存在且已经设置了粘制位则为真。
[-p FILE ]如果 FILE存在且是一个名字管道(F如果O)则为真。
[-r FILE ]如果 FILE存在且是可读的则为真。
[-s FILE ]如果 FILE存在且大小不为0则为真。
[-t FD ]如果文件描述符 FD打开且指向一个终端则为真。
[-u FILE ]如果 FILE存在且设置了SUID(set user ID)则为真。
[-w FILE ]如果 FILE如果 FILE存在且是可写的则为真。
[-x FILE ]如果 FILE存在且是可执行的则为真。
[-O FILE ]如果 FILE存在且属有效用户ID则为真。
[-G FILE ]如果 FILE存在且属有效用户组则为真。
[-L FILE ]如果 FILE存在且是一个符号连接则为真。
[-N FILE ]如果 FILE存在 and has been mod如果ied since it was last read则为真。
[-S FILE ]如果 FILE存在且是一个套接字则为真。
[ FILE1-nt FILE2 ]如果 FILE1 has beewww.028x.cn#hanged more recently than FILE2, or如果 FILE1 exists and FILE2 does not则为真。
[ FILE1-ot FILE2 ]如果 FILE1比 FILE2要老,或者 FILE2存在且 FILE1不存在则为真。
[ FILE1-ef FILE2 ]如果 FILE1和 FILE2指向相同的设备和节点号则为真。
[-o OPTIONNAME ]如果 shell选项“OPTIONNAME”开启则为真。
[-z STRING ]“STRING”的长度为零则为真。
[-n STRING ] or [ STRING ]“STRING”的长度为非零 non-zero则为真。
[ STRING1== STRING2 ]如果2个字符串相同。“=” may be used instead of“==” for strict POSIX compliance则为真。
[ STRING1!= STRING2 ]如果字符串不相等则为真。
linux tail -n
1、tail-n 38 results.txt:显示文件results.txt的后38行
2、sed'/X-S/d':将这后38行中含有"X-S"的行删除
3、sed处理后的行由gawk再处理:
对输入的每一行执行(每行作为一条记录处理一次,记录号从1开始):
{if(NR==1&&length==115)printf"%.1f%.1f%.2f%f%E%E%E%E",'$i','$j','$z',$3,$6,$10,$7/2.439,$7}
记录号等于1,记录长度为115时打印输出:
浮点型变量i, j, z的值(是shell变量,不是gawk输入记录中的数值)
科学记数法型值:当前记录中第3, 6, 10,7(除2.439),7个变量的值
(NR!=1&&length==115){printf"%E%E%E%E\n",$3,$6,$7/2.439,$7}'
对记录号不等于1,记录长度为115时打印输出:
科学记数法型值:当前记录中第3,6,7(除2.439),7个变量的值
4、>>../input.input
gawk处理后的结果追加输出到文件input.input中。
以上各步由管道连接,前一步的输出作为后一步的输入。
linux 每个if都要搭配一个fi吗
每个if语句都要用fi结束,而且是每一个if都要对应一个fi。
整个if语句用fi闭合起来才算完整,书写时if和fi要垂直对齐以方便查看。
格式举例:
if condition
then
command1
command2
fi
condition是判断条件,如果 condition成立(返回“真”),那么 then后边的语句将会被执行;如果 condition不成立(返回“假”),那么不会执行任何语句。最后必须以fi来闭合,fi就是 if倒过来拼写,即使有多条语句也不需要用{}包围起来。
扩展资料
shell if多条件的格式用法介绍
shell支持任意数目的分支,当分支比较多时,可以使用 if elif else结构,它的格式为:
if condition1
then
statement1
elif condition2
then
statement2
elif condition3
then
statement3
else
statementn
fi
注意,if和 elif后边都得跟着 then。整条语句的执行逻辑为:
如果 condition1成立,那么就执行 if后边的 statement1;如果 condition1不成立,那么继续执行 elif,判断 condition2。
如果 condition2成立,那么就执行 statement2;如果 condition2不成立,那么继续执行后边的 elif,判断 condition3。
如果 condition3成立,那么就执行 statement3;如果 condition3不成立,那么继续执行后边的 elif。
如果所有的 if和 elif判断都不成立,就进入最后的 else,执行 statementn。