linux中if的命令 Linux if命令
Linux篇:shell脚本中if的“-e,-d,-f”
最近在学一段脚本中的if语句中出现了这么一句:
麻阳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
if [ ! -f "/usr/bin/svnserve" ]
一时没想起这个-f的意思,于是重新翻了之前的笔记,把相关的知识点总结如下:
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
04 字符串变量表达式
if [ $a = $b ] 如果string1等于string2,则为真,字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2,则为真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空,则为真
if [ $sting ] 如果string 非空,返回0 (和-n类似)
逻辑非 ! 条件表达式的相反
if [ ! 表达式 ]
if [ ! -d $num ] 如果不存在目录$num
逻辑与 –a 条件表达式的并列
if [ 表达式1 –a 表达式2 ]
逻辑或 -o 条件表达式的或
if [ 表达式1 –o 表达式2 ]
linux 下shell中if的参数
文件表达式
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
整数变量表达式
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
字符串变量表达式
If [ b ] 如果string1等于string2,则为真
字符串允许使用赋值号做等号
if [ string2 ] 如果string1不等于string2,则为真
if [ -n string ] 如果string 为空,则为真
if [ $sting ] 如果string 非空,返回0 (和-n类似)
if [ ! 表达式 ]
if [ ! -d num
if [ 表达式1 –a 表达式2 ]
if [ 表达式1 –o 表达式2 ]
Linux里面if [ -f mkdir /media/cdrom ]命令作用是什么?
mkdir命令功能:
mkdir是(make directories)的缩写,
其功能为创建一个目录
mkdir命令的语法格式:
mkdir [参数] [目录路径]
------参数说明---
-p:递归创建多级目录
-m:建立目录的同时设置目录的权限
-z:设置安全上下文
-v:显示目录的创建过程
注意事项:
1.当待创建目录已存在,则会提示相应的存在信息,并不会执行创建目录动作
2.mkdir命令可以同时创建多个目录
例:
mkdir命令 的示例分享
----在当前目录下,创建一个子目录dirTest
[root@****** ~]# mkdir dirTest
----在目录/usr/test下建立子目录dirtest
---并设置目录所有者拥有有读、写和执行权限,其他人无权访问
[root@****** ~]# mkdir -m 700 /usr/test/dirtest
---同时创建子目录dirtest1,dirtest2,dirtest3
[root@****** ~]# mkdir dirtest1 dirtest2 dirtest3
---递归创建目录
---此命令会先创建一个test目录
---再创建一个dirtest目录
[root@****** ~]# mkdir -p test/dirtest
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 bee 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 shell if语句怎么写? 我要显示不在集合中的元素
[急] linux shell if语句怎么写? 我要显示不在集合中的元素
read -p "请输入分数: " score
if [ $score -gt 60 -a $score -lt 70 ]; then
echo "合格"
fi
逻辑判断说明:
-gt (greater than,大于)
-lt (less than, 小于)
-a (and, 逻辑“与”关系)
注意 [ ] 里的空格
java中用两种方式显示集合中的所有元素
import java.util.HashSet;import java.util.Iterator;public class JiHe { public static void main(String[] args) { HashSetString set = new HashSetString(); set.add("天涯"); set.add("明月"); set.add("风云"); for (String str : set) {回圈遍历 System.out.println(str); } System.out.println("=======分割线========="); IteratorString it = set.iterator();Iterator进行遍历 while(it.hasNext()){ System.out.println(it.next()); } }} 输出 风云明月天涯=======分割线=========风云明月天涯
集合中的元素及其表示
集合中每一个物件称为集合的元素
元素就是集合中的所有研究物件,也就是组成集合的所有物件
|A|表示的是集合A中元素的个数,有的书上也用card(A)来表示集合A中元素的个数,但是一般在研究集合中元素个数的时候都是针对有限集来说的
集合中的元素可以是集合么
当然可以!
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” ]] 能达到你想要的效果。
集合中的元素可以是集合吗?
可以 不过高中一般不会太追究这个问题,只要知道这个集合的元素不会包含这个集合本身就可以了。
楼下的给你举个例子,人包含男人和女人
人是一个集合,男人也是一个集合,女人也是一个集合。。
集合通常用?表示,用?表示集合中的元素
用大括号表示
列举法
{a,b,c}
描述法
{x|x满足的条件}
集合中的元素题目
³√x³=x √x²=x的绝对值
1当x=0 只有1个
2当x不=0 有x和-x
至多有2个
若集合,,且,,且,用表示集合中的元素个数,则( )。
若集合,,且,,且,用表示集合中的元素个数,则( )。 是什么意思啊?
只表示集合中的元素时用不用{ }
不用
Linux awk 命令详解(二) if 分支 数组
一、awk if分支结构
二、awk数组 for循环
一、awk if分支结构
案例1
awk过滤中的if分支结构
1)单分支
统计/etc/passwd文件中UID小于或等于1000的用户个数:
统计/etc/passwd文件中UID大于1000的用户个数:
统计/etc/passwd文件中登录Shell是“/bin/bash”的用户个数:
2)双分支
分别统计/etc/passwd文件中UID小于或等于1000、UID大于1000的用户个数:
分别统计/etc/passwd文件中登录Shell是“/bin/bash”、 登录Shell不是“/bin/bash”的用户个数:
二、awk数组
注意,awk数组的下标除了可以使用数字,也可以使用字符串,字符串需要使用双引号:
案例3:awk扩展应用
1)awk统计Web访问排名
在分析Web日志文件时,每条访问记录的第一列就是客户机的IP地址,其中会有很多重复的IP地址。因此只用awk提取出这一列是不够的,还需要统计重复记录的数量并且进行排序。
通过awk提取信息时,利用IP地址作为数组下标,每遇到一个重复值就将此数组元素递增1,最终就获得了这个IP地址出现的次数。
针对文本排序输出可以采用sort命令,相关的常见选项为-r、-n、-k。其中-n表示按数字顺序升序排列,而-r表示反序,-k可以指定按第几个字段来排序
实现此案例需要按照如下步骤进行。
步骤一:统计Web访问量排名
分步测试、验证效果如下所述。
1)提取IP地址及访问量
2)对第1)步的结果根据访问量排名
案例4:编写监控脚本
本案例要求编写脚本,实现计算机各个性能数据监控的功能,具体监控项目要求如下:
CPU负载
网卡流量
内存剩余容量
磁盘剩余容量
计算机账户数量
当前登录账户数量
计算机当前开启的进程数量
本机已安装的软件包数量
步骤
实现此案例需要按照如下步骤进行。
步骤一:准备工作
1)查看性能数据的命令
步骤二:编写参考脚本
1)脚本内容如下:
分享文章:linux中if的命令 Linux if命令
分享路径:http://azwzsj.com/article/dochipi.html