Shell编程自动化之特殊Shell扩展变量

1.变量的处理

1.1 如果parameter变量值为空,那么返回str字符串。

${parameter:-str}

1.2 如果parameter变量值为空,那么str替代变量值,且返回其值。

${parameter:=str}

1.3 如果parameter变量值为空,那么str当作stderr输出,否则输出变量值。

${parameter:?str}

1.4 如果parameter变量值为空,那么什么都不做,否则str返回。

${parameter:+str}

2.对Linux特殊符号的整理

${vars} 取出变量结果

$vars 取出变量结果

$() 在括号中执行命令,且拿到命令的执行结果

`` 在括号中执行命令,且拿到命令的执行结果

() 开启子shell执行命令结果

3.实例

3.1 数据备份时,删除10天以上的过期数据的脚本

shell 复制代码
find ${dir_path:=/data/mysql_backup/} -name '*.tar.gz' -type f -mtime +10 | xargs rm -f

3.2 批量修改文件名的脚本

shell 复制代码
for file_name in `ls *test*jpg`;do mv $file_name `echo ${file_name//_test/}`;done

相关推荐
郝学胜-神的一滴1 分钟前
Linux信号屏蔽字详解:原理、应用与实践
linux·服务器·开发语言·c++·程序人生
神秘奇男子14 分钟前
openEuler 25.09 企业级 MySQL主从复制部署与性能优化实战提升50%
linux·mysql
北京耐用通信25 分钟前
三步打通数据壁垒:耐达讯自动化Ethernet/IP转CC-Link方案全解析。建议点赞收藏
运维·tcp/ip·自动化
moringlightyn35 分钟前
进程控制(程序替换+自定义Shell)
linux·服务器·c++·笔记·c·shell·进程
Evan芙1 小时前
用fping编写脚本扫描10.0.0.0/24网段在线主机
linux·运维·网络·excel
小毛驴8501 小时前
nrm test 所有源超时解决办法
linux·服务器·网络
SongYuLong的博客1 小时前
ARM Linux 交叉编译工具链(toolchain)
linux·运维·arm开发
云计算老刘1 小时前
Shell三剑客 : 2. sed 使用手册
linux·运维·服务器
qq_479875431 小时前
Linux 网络实验(3)
linux·运维·网络
御控工业物联网1 小时前
智慧水务新突破:基于工业网关的二次供水泵房物联网采集解决方案
物联网·自动化·数据采集·plc·远程监控·远程控制·多品牌plc数据采集