linux中if
A. 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 ] 如果字符串不相等则为真。
B. linux里面if [ “result” != “ “ ]判断作用是什么
题主你好,
先说作用再分析.
作用: 判断 != 两边的字符串是否不相等, 即判断"result"还" "是否不相等.
但是光说作用了,其实对于实际使用还是没有太大帮助.
-----
分析:
截图中红框框选的就是本题中用到的!=,用来判断两个字符串是否不相等.
=====
希望可以帮到题主, 欢迎追问.
C. 在linux中,if [ -f $home/$1]的含义
#[-f$home/$1]表示的是判断$home/$1是不是文件,并且存在$1表示的是你执行脚本的第一个参数,下面有详细的例子你可以练习一下!
[root@localhosttest]#pwd
/root/test
[root@localhosttest]#ls
eoopenone.sh
[root@localhosttest]#catone.sh
#!/bin/bash
#这里我假设一下$home和$1这两个变量的值
home=root
if[-f/$home/$1];then
echo"它是文件而且存在这样的一个文件";
else
echo"这不是一个文件,或者它不在在"
fi
[root@localhosttest]#shone.shdemo.php
它是文件而且存在这样的一个文件
[root@localhosttest]#cd../
[root@localhost~]#pwd
/root
[root@localhost~]#ls
anaconda-ks.cfgdemo2.phpdemo.phphxb.phpinstall.loginstall.log.syslogone.shPHPExcel_1.8.0_doc.ziptest
D. linux if语句作用
-f 文件存在而且为真
-n str 字符串长度大于0为真
-z str 字符串长度为0真
str 字符串非空纬真
-eq 相等
-ne 不相等
-gt >
-lt <
-ge >=
-le <=
-r 可读为真
-w 可写为真
-x 可执行为真
-f 正规为真
-d 是目录为真
-c 其他字符文件为真
-b 块特殊文件真
-s 文件大小非0为真
逻辑判断:
-a 与
-o 或
! 非
E. Linux的if语句问题
脚本 里 -a是正则表达式的&& ,即全部条件成立才成立,只要第一个条件不成立后面的都不会执行,\( $1 =='q' -a $1 =='Q' -a $1 =='Quit' -a $1 == 'quit' \),你每次输入一个Q/Quit/q/quit,都只是符合其中一个条件,故这个语句值为假,然后!是当if [ ! **** ]后面的****为假时执行,即会直接输出“NOT Quiting....” 。
-o 是只要有一个条件成立,全部语句就成立,当你输入Q/Quit/q/quit时,if 里面的 \( $1 =='q' -o $1 =='Q' -o $1 =='Quit' -o $1 == 'quit' \) 就是为真,前面再加上一个!,就是 假,故此时执行else后面的语句,于是输出结果是Unknown Argument。
只要知道!是取反就可以了,讲的不好见谅。
F. 求linux shell 中if的写法
主要是格式问题:
if [[ $jg == false ]]; then
echo -e "\033[41;37m $sj $jg \033[5;m"
elif [[ $jg != false ]]; then
echo -e "\033[42;37m $sj $jg \033[1;m"
fi
注意中间的空格,假如是字符串匹配,最好加上引号。
G. linux shell if语句中~是什么意思
if为判断语句,判断某个东西是否达到设定的条件。
1,格式为:
if语句格式
if条件
then
Command
else
Command
fi别忘了这个结尾
2,if的三种条件表达式:
ifcommandthen
if函数then命令执行成功,等于返回0(比如grep,找到匹配)执行失败,返回非0(grep,没找到匹配)
if[expression_r_r_r]then表达式结果为真,则返回0,if把0值引向then
iftestexpression_r_r_rthen表达式结果为假,则返回非0,if把非0值引向then
H. linux 每个if都要搭配一个fi吗
每个if语句都要用fi结束,而且是每一个if都要对应一个fi。
整个if语句用fi闭合起来才算完整,书写时if和fi要垂直对齐以方便查看。
格式举例:
if condition
then
command1
command2
fi
condition是判断条件,如果 condition 成立(返回“真”),那么 then 后边的语句将会被执行;如果 condition 不成立(返回“假”),那么不会执行任何语句。最后必须以fi来闭合,fi 就是 if 倒过来拼写,即使有多条语句也不需要用{ }包围起来。
(8)linux中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。
I. linux中的if函数怎么用啊
题主你好,
我这边把你的代码敲了一遍, 没有出现你说的情况.
测试所用代码:
写在最后: 题主把你那边所用的系统以及代码运行截图发过来,我看一下.
另外关于shell语法这东西,熟悉了也就好了,你之所以会生气是因为刚接触shell,怎么调都不和你心意,后期基本的语法都玩熟了,也就没这种想法了。c语言其实也一样,如果没人告诉你语法,而是你自己去猜测,去试,碰一鼻子灰的时候也是现在写shell时的心态.
另外当你熟悉了一门语言后,再去接触其它语言,尤其是语法差异较大的语言,就会觉得很别扭,都是先入为主的思想弄的,反过来想,如果你一开始接触的是shell,可能现在就会觉得c很别扭。你现在可能觉得不是这样的,那是因为你现在会c语言.
所以我想说的是不管是啥语言,不管设计样,既然要用它,就静下心来,盘它就对了:)
=====
希望可以帮到题主, 欢迎追问.
J. linux if判断是不是数字
if echo $n|grep "^[0-9][0-9]*$";then
echo $n是数字
fi