Ⅰ shell的if命令如何判断一个文件中所含指定字符串
1、字符串判断
1)str1 = str2当两个串有相同内容、长度时为真 ;
2)str1 != str2 当串str1和str2不等时为真 ;
3)-n str1 当串的长度大于0时为真(串非空) ;
4)-z str1 当串的长度为0时为真(空串) ;
5)str1 当串str1为非空时为真。
2、数字的判断
1)int1 -eq int2两数相等为真;
2)int1 -ne int2两数不等为真;
3)int1 -gt int2int1大于int2为真;
4)int1 -ge int2int1大于等于int2为真;
5)int1 -lt int2int1小于int2为真;
6)int1 -le int2int1小于等于int2为真。
3、文件的判断
1)-r file用户可读为真;
2)-w file用户可写为真;
3)-x file用户可执行为真;
4)-f file文件为正规文件为真;
5)-d file文件为目录为真;
6)-c file文件为字符特殊文件为真;
7)-b file文件为块特殊文件为真;
8)-s file文件大小非0时为真;
9)-t file当文件描述符(默认为1)指定的设备为终端时为真。
Ⅱ linux bash/sh/shell编程中的if语句应该怎么写
line="#abcmatch
BCD"
REGEXP="^[#]"
#
变量赋值不需要前缀$
if
[[
$line
=~
$REGEXP
]]
&&
[[
$line
!=
''
]];
then
#粗心
[[
]]
要配对使用
你写成了
[[
]
[
]]
true
#shell
不能使用空的if
结构,至少要有一个命令。
可以使用true命令
。
echo
yes
else
echo
NO
fi
###
end
另外Bash
不支持完全的正则表达式。[[
“$line”
=~
“$REGEXP”
]]
不能达到你想要的效果。
需要使用echo
"$string"|
grep
-qP
/regexp/
Zsh
支持完整的正则表达式,
[[
“$line”
=~
“$REGEXP”
]]
能达到你想要的效果。
Ⅲ shell脚本中的if中多条件语句如何写。
可以使用 if-elif-else 语法来写多条件语句。
1、首先要理解if-else的基本用法,if条件+then操作+else操作+fi闭合,书写方法如下:
2、 shell语法中[[ ]]和[ ]的主要区别
(1) [ ] 实际上是bash 中 test 命令的简写。即所有的 [ expr ] 等于 test expr。
对 test 命令来说, 用 -eq 要进行数字比较,而你此时传入字符串,就报错了。
(2) [[ ]] 是内置在shell中的一个命令,它比test强大的多。支持字符模昌咐串的模式匹配(使用=~操作符时甚至支持shell的正则表达式)。逻辑组合可以不使用test的-a,-o而使用&& ||。
Ⅳ 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
Ⅳ shell if 多条件判断
#其中mkdir外面陪晌的符号是esc下来那个按键上的符号,表示执行命令
#!/bin/bash
if[`mkdir-p~/1/1`-a`mkdir~/2`];then
echo"成立{$?}"
else
echo兄春"不成立羡乱耐{$?}"
fi
Ⅵ shell 脚本 if 的用法小问题
1. 执行shell脚本的时候加上 -x ,执行脚本时会把过程列出来!(有利于我这种新手学习)sh -x shell (./shell 也可以执行shell脚本 但是没有-x参数)2. 传的值的个数大于 read 定义的接受变量的时候会把多戚兆码余的值都给最后一个变量!!3. expr 对整数型变量进行运算 如果运算结果不是整数小数点后面的全部省去 (乘号要用转意字符'/') .4. 在shell脚本里面 执行一条输出的命令(pgrep mysqld)怎么吧输出的结果作为值赋给变量?web=$(/usr/bin/pgrep mysqld) #可以用 变量=$(命令) 和 变量=`命令` 来吧命令执行的结果赋给变量
if [ $web = ]
then
/etc/init.d/mysql start
fi
5.查看某个命令所在的位置可以用 whereis /which/type 三个命令来查看6.awk命令的应用作用:分段提取! (一行为单位来进猜信行分段)awk -F [分隔符] '条件 动作' /对象例: awk -F : '$3==0 {print $1}' /高哪etc/passwd例: awk -F : '$1 == root {print $1} ' /etc/passwd# -F : 用:分割passwd每行的内容 ($1 指第一段内容 $2 指第二段内容$n 指第n段内容)# ' 匹配 动作' 单引号里面写的是 匹配命令和打印动作 匹配$3==0 第三段等于0 打印{print $1} 打印第一段内容 ($3 == 0 匹配出行 在打印出这些行的第一段内容 )