Shell脚本开发:printf和test命令的实际应用

目录

[Shell printf 命令](#Shell printf 命令)

打印简单文本

[Shell test 命令](#Shell test 命令)

1、文件测试

2、字符串比较

3、整数比较

逻辑运算:


Shell printf 命令

当你使用Shell中的printf命令时,它可以帮助你格式化和输出文本。

打印简单文本

这将简单地打印字符串"Hello, World!",并在末尾添加一个换行符\n来换行。

复制代码
printf "Hello, World!\n"

Shell test 命令

当你使用Shell中的test命令时,它用于测试条件是否为真(True)。test命令通常用于Shell脚本中的条件判断,以便根据条件的结果执行不同的操作。

1、文件测试

用于测试文件和目录的属性

-e 文件:检查文件是否存在。

-f 文件:检查文件是否是一个常规文件。

-d 文件:检查文件是否是一个目录。

-s 文件:检查文件是否不为空(即文件大小是否大于零)。

-r 文件:检查文件是否可读。

-w 文件:检查文件是否可写。

-x 文件:检查文件是否可执行。

示例:

复制代码
if [ -e "myfile.txt" ]; then
    echo "文件存在"
fi

2、字符串比较

用于测试字符串的内容

字符串1 = 字符串2:检查两个字符串是否相等。

字符串1 != 字符串2:检查两个字符串是否不相等。

-n 字符串:检查字符串是否非空。

-z 字符串:检查字符串是否为空。

示例:

复制代码
if [ "$name" = "Alice" ]; then
    echo "姓名是Alice"
fi

3、整数比较

用于测试整数值

整数1 -eq 整数2:检查两个整数是否相等。

整数1 -ne 整数2:检查两个整数是否不相等。

整数1 -lt 整数2:检查整数1是否小于整数2。

整数1 -le 整数2:检查整数1是否小于或等于整数2。

整数1 -gt 整数2:检查整数1是否大于整数2。

整数1 -ge 整数2:检查整数1是否大于或等于整数2。

示例:

复制代码
if [ $age -lt 18 ]; then
    echo "年龄小于18岁"
fi

逻辑运算:

用于进行逻辑操作

! 表达式:逻辑非,取反操作。

表达式1 -a 表达式2:逻辑与,当两个表达式都为真时返回真。

表达式1 -o 表达式2:逻辑或,当两个表达式中至少有一个为真时返回真。

示例:

复制代码
if [ ! -e "file.txt" -a "$user" = "admin" ]; then
    echo "文件不存在且用户是管理员"
fi
相关推荐
weixin_4219226915 小时前
C++与Node.js集成
开发语言·c++·算法
chushiyunen15 小时前
python cosyVoice实现tts文本转语音、音频(未完成)
开发语言·python·音视频
hongtianzai15 小时前
Laravel6.x重磅发布:LTS版本新特性全解析
c语言·开发语言·php·laravel
赖亦无15 小时前
【水动力学】06 Linux + Conda 环境下源码编译安装 pypims (CUDA加速) 避坑指南
linux·运维·conda·pypims·水动力学
kgduu15 小时前
js之网络请求与远程资源
开发语言·javascript·网络
酉鬼女又兒15 小时前
零基础入门前端JavaScript 核心语法:var/let/const、箭头函数与 setTimeout 循环陷阱全解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·javascript·蓝桥杯
暮冬-  Gentle°15 小时前
设计模式在C++中的实现
开发语言·c++·算法
2501_9083298515 小时前
实时音频处理C++实现
开发语言·c++·算法
dapeng287015 小时前
移动语义与完美转发详解
开发语言·c++·算法
穷人小水滴15 小时前
使用 WebRTC 实现局域网投屏: PC (GNOME ArchLinux) -> 平板 (Android)
android·linux·webrtc·浏览器·js·gnome·投屏