linux shell脚本快速入门
本文里,通过对shell脚本里的变量申明、循环语句、条件判断、数据叠加的总结,能解决linux日常管理的大部分脚本
1、变量的申明:
是弱类型的语言,用name=xxx;取变量值的时候$name
2、条件判断:
if[ condition]; then
operator;
elif[ condition]; then
operator;
else
operator;
fi
3、循环:
while[ condition]
#condition如果是用[]取代test,则有两个[]
do
operator;
done;
for((i=1;i<100;i++))
do
operator;
done;
for var in $(seq n)
#or for var in `cat /etc/hosts`
do
operator;
done;
4、使用"[]"做判断条件注意点:
1)、每个组件之间都要用空格隔开,如果用@代替空格,则表达式的判断为@[@str1@==@str2@]@;
2)、用'=='进行判断时,两边的必须是字符串,所以必须用""括起来,如"$name" == "want",用$name == "want"出错,两边类型不同;
3)、test判断:
文件侦测: test -e filename
test -f filename
test -d direct
文件权限判断:
test -r filename
test -w filename
test -x filename
文档时间:
test file1 -nt file2; 判断file1是否比file2新
test file1 -ot file2;
test file1 -et file2;判断两个文件是否为同一个档案,可用在hard link的判断上
两整数的判断:
test n1 -eq n2;
test n1 -ne n2;
test n1 -gt n2;
test n1 -lt n2;
test n1 -ge n2;
test n1 -le n2;
字符串的判断:
test -z string;字符串是否为空为0,如果string为空,则为true;
test -n string;字符串是否非0
test st1 = st2;
test st1 != st2;
多重判断:
-a:and,例子test -r file -a -x file;
-o:
!:test ! -x file:判断file文件是否没有可执行权限
4)、[]判断可以替代test进行判断,除了2)中的字符串相等要用==;
5)、let "count=$count + 1";必须有"",否则出错
5、字符运算
i=2;
i=$(($i*2));
6、awk:
awk '条件类型1{动作1} 条件类型2{动作2}' filename
打印file中以分号分割的第三列大于10的第一列和第4列
cat file| awk 'BEGIN {FS=":"} $3 > 10 {print $1 "\t" $4}}
7、简单的例子:
看完了这些,你是否可以写出这样的脚本了呢:用递归的思想找出给定目录下文件大小超过给定大小文件的脚本,虽然可以用find命令操作,但是还是值得动手去做的!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?