当前位置:首页 > Linux > 正文内容

shell-if表达式(-f,-d,-s,-r,-w,-x,-eq,-ne,-ge,-gt,-le,-lt )

canca5年前 (2021-01-01)Linux435

文件表达式

if [ -f file ] 如果文件存在
if [ -d … ] 如果目录存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行

整数变量表达式

if [ int1 -eq int2 ] 如果int1等于int2
if [ int1 -ne int2 ] 如果不等于
if [ int1 -ge int2 ] 如果>=
if [ int1 -gt int2 ] 如果>
if [ int1 -le int2 ] 如果<=
if [ int1 -lt int2 ] 如果<

字符串变量表达式

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类似)

shell中条件判断if中的-z到-d的意思

[ -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 been changed 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” 的长度为零则为真。


扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/744.html

标签: shell
分享给朋友:

“shell-if表达式(-f,-d,-s,-r,-w,-x,-eq,-ne,-ge,-gt,-le,-lt )” 的相关文章

在Linux下安装和使用MySQL

一、引言   想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的 MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,...

CentOS增加swap分区大小

1. 查看当前分区情况free -m2. 增加 swap 大小, 2G 左右dd if=/dev/zero of=/var/swap bs=1024 count=2048000  3. 设置交换文件mkswap /var/swap 4. 立即激活启用交换分区swapon /var...

linux 系统tar文件压缩打包命令

打包成tar.gz格式压缩包# tar -zcvf renwolesshel.tar.gz /renwolesshel解压tar.gz格式压缩包# tar zxvf renwolesshel.tar.gz打包成tar.bz2格式压...

debian系统如何搭建 Samba服务器

debian系统如何搭建 Samba服务器

几乎所有的 Linux 发行版都提供了一个很好的工具 Samba来轻松实现文件共享。最近在Nanopi2 上安装了 debian 系统,然后准备搭建Samba 服务器来实现文件的共享,以下步骤仅供参考。1.执行以下指令:apt-get install samba samba-common-bin2....

Debian更新系统时间

Debian更新时间A 更新源,并安装ntpdate:0.date 查看当前的系统时间1.sudo apt-get update 更新源2.sudo apt-get install ntpdate 安装ntpdate3.sudo ntpdate ntp1.aliyun....

Rsync自动同步工具

开机自启动 vi /etc/rc.local/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf Linux(Debian和Fedora)下利用rsync同步工具自动同步远程服务器文件的安装和配置步骤:一、安装1、Deb...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。