重庆网站备案快,改网站字体颜色代码,电子商务网站建设与管理心得,什么是营销模式Shell编程中的if分支语句#xff1a;伪代码表示#xff1a;注意符号和表达式之间的空格#xff1b;
if [ 表达式1 ]
then分支1
elif [ 表达式2 ]
then分支2
elif [ 表达式3 ]
then分支3
else其它
fi按整型的方式#xff0c;if分支语句比较字符串的大小#xff1a;等于伪代码表示注意符号和表达式之间的空格
if [ 表达式1 ]
then分支1
elif [ 表达式2 ]
then分支2
elif [ 表达式3 ]
then分支3
else其它
fi按整型的方式if分支语句比较字符串的大小等于-eq不等于-ne小于-lt大于-gt小于等于-le大于等于-ge方括号[ ]内部逻辑与运算-a方括号[ ]外部逻辑与运算方括号[ ]内部逻辑或运算-o方括号[ ]外部逻辑或运算||逻辑非运算!测试代码
#!/bin/bashread -p 请输入数值1 X
read -p 请输入数值2 Yif [ $X -gt 0 ] [ $Y -gt 0 ]
thenecho 两个大于0的数值if [ $X -eq $Y ]thenecho $X等于$Yelif [ $X -gt $Y ]thenecho $X大于$Yelseecho $X小于$Yfi elseecho 两个小于或着等于0的数值
fi
运行结果
#第一次运行
请输入数值188
请输入数值299
两个大于0的数值
88小于99
#第二次运行
请输入数值199
请输入数值299
两个大于0的数值
99等于99
#第三次运行
请输入数值199
请输入数值288
两个大于0的数值
99大于88
#第四次运行
请输入数值1-88
请输入数值2-99
两个小于或着等于0的数值if分支语句判断文件的类型判断文件是否存在-e判断文件是否非空-s判断文件是否是块设备文件-b判断文件是否是套接字文件-S判断文件是否是管道文件-p判断文件是否是普通文件-f判断文件是否是链接文件-L判断文件是否是字符设备文件-c判断文件是否是目录文件-d特别注意判断文件类型时若文件既是链接文件又是普通文件时优先判断链接文件测试代码
#!/bin/bashread -p 请输入某文件名称 FEif [ -e $FE ]
thenecho 该文件存在if [ -s $FE ]thenecho 该文件不是空的if [ -L $FE ]thenecho 该文件是链接文件elif [ -f $FE ]thenecho 该文件是普通文件elif [ -d $FE ]thenecho 该文件是目录文件fielseecho 该文件是空的fi
elseecho 该文件不存在
fi运行结果
请输入某文件名称f5.sh
该文件存在
该文件不是空的
该文件是普通文件if分支语句判断文件的权限判断文件是否有读权限-r判断文件是否有写权限-w判断文件是否有执行权限-x特别注意判断的是执行脚本者的权限测试代码
#!/bin/bashread -p 请输入文件名 FEif [ -r $FE ]
thenecho 有读权限
elseecho 没有读权限
fiecho ------------------------
if [ -w $FE ]
thenecho 有写权限
elseecho 没有写权限
fi
echo ------------------------
if [ -x $FE ]
thenecho 有执行权限
elseecho 没有执行权限
fi
运行结果
请输入文件名f4.sh
有读权限
------------------------
有写权限
------------------------
没有执行权限if分支语句判断文件的Inode的异同所使用的选项-ef终端查看Inode的命令stat 文件名特别注意不同为假相同为真硬链接文件Inode一致测试代码
#!/bin/bashread -p 请输入文件1名称 FE1
read -p 请输入文件2名称 FE2if [ $FE1 -ef $FE2 ]
thenecho 相同elseecho 不同
fi
运行结果
#第一次运行
请输入文件1名称f1.sh
请输入文件2名称f2.sh
不同
#第二次运行
请输入文件1名称f1.sh
请输入文件2名称f1.sh
相同if分支语句对字符串的判断判断字符串是否为空-z判断字符串是否为非空-n判断字符串是否相等 OR 判断字符串是否不等!判断字符串是否大小\ OR \特别注意引用字符串时要加双引号 ;测试代码
#!/bin/bashread -p 请输入字符串1 STR1
read -p 请输入字符串2 STR2if [ -z $STR1 ]
thenecho STR1空elseecho STR1不空fiecho --------------------------if [ -n $STR2 ]
thenecho STR2不空elseecho STR2空fi
echo --------------------------if [ $STR1 $STR2 ]
thenecho STR1 STR2elif [ $STR1 \ $STR2 ]
thenecho STR1 STR2
elseecho STR1 STR2
fi运行结果
请输入字符串1hello
请输入字符串2helle
STR1不空
--------------------------
STR2不空
--------------------------
STR1 STR2if分支语句判断文件的时间戳判断文件1是否比文件2更新-nt判断文件1是否比文件2更旧-ot特别注意比较的是文件1和文件2的最后一次修改时间测试代码
#!/bin/bashread -p 输入文件1的文件名 FE1
read -p 输入文件2的文件名 FE2if [ $FE1 -nt $FE2 ]
thenecho 文件1比文件2更新
elseecho 文件1比文件2更旧
fiecho ---------------------------if [ $FE1 -ot $FE2 ]
thenecho 文件1比文件2更旧
elseecho 文件1比文件2更新
fi运行结果
#第一次运行
输入文件1的文件名f1.sh
输入文件2的文件名f2.sh
文件1比文件2更旧
---------------------------
文件1比文件2更旧
#第二次运行
输入文件1的文件名f3.sh
输入文件2的文件名f2.sh
文件1比文件2更新
---------------------------
文件1比文件2更新实例要求1.判断当前路径下是否存在名称为dir_DIR的文件若存在输入Y清空若不存在自动新建目录文件dir_DIR2.判断当前路径下是否存在名称为file_DIR的文件若存在输入Y清空若不存在自动新建目录文件file_DIR3.根据提示信息输入一个路径将该路径下普通文件和目录文件进行分类并且复制到目录文件dir_DIR和file_DIR中需要统计具体多少个普通文件和多少个目录文件并列举出所复制的所有文件测试代码
#!/bin/bashDIR_PATH$HOME/xxxx/dir_DIR
FILE_PATH$HOME/xxxx/file_DIRif [ -e $DIR_PATH ]
thenecho 存在dir_DIR文件read -p 是否清空,请输入[Y/N] Cif [ $C Y ]thenrm -rf $DIR_PATHelseecho 退出脚本exitfifi
echo 新建目录文件dir_DIR
mkdir $DIR_PATHif [ -e $FILE_PATH ]
thenecho 存在file_DIR文件read -p 是否清空,请输入[Y/N] Cif [ $C Y ]thenrm -rf $FILE_PATHelseecho 退出脚本exitfifi
echo 新建目录文件file_DIR
mkdir $FILE_PATHFILE_NUM0
DIR_NUM0read -p 请输入一个路径 Pafor i in ls $Pa
doif [ -f $Pa/$i ]thencp $Pa/$i $FILE_PATH((FILE_NUM))elif [ -d $Pa/$i ]thencp -r $Pa/$i $DIR_PATH((DIR_NUM))fi
doneecho -----该路径下的普通文件和目录文件分类已完成-----
echo 总共复制了 $FILE_NUM 个普通文件
echo 分别是
ls $FILE_PATH
echo 总共复制了 $DIR_NUM 个目录文件
echo 分别是
ls $DIR_PATH运行结果
#第一次执行
新建目录文件dir_DIR
新建目录文件file_DIR
请输入一个路径/home/linux/xxxx/dir1
-----该路径下的普通文件和目录文件分类已完成-----
总共复制了 4 个普通文件
分别是
file1 file2 file3 file4
总共复制了 5 个目录文件
分别是
dir2 dir3 dir4 dir5 dir6#第二次执行
存在dir_DIR文件
是否清空,请输入[Y/N]Y
新建目录文件dir_DIR
存在file_DIR文件
是否清空,请输入[Y/N]Y
新建目录文件file_DIR
请输入一个路径/home/linux/xxxx/dir1
-----该路径下的普通文件和目录文件分类已完成-----
总共复制了 4 个普通文件
分别是
file1 file2 file3 file4
总共复制了 5 个目录文件
分别是
dir2 dir3 dir4 dir5 dir6