Bash 字符串处理:参数展开、序列与脚本执行方式

Bash 字符串处理:参数展开、序列与脚本执行方式

1. 用途介绍

Bash 字符串展开可提取文件名、替换文本并获取字符串长度;序列和 time 用于重复操作及耗时观察。本文区分 bash 执行、source 当前环境加载和子 Shell,避免配置变量不生效。

2. 准备运行环境

Linux 与 Bash,普通账号即可;先 bash --version。命令区分大小写。批量改名先在临时测试目录预览,本篇不执行真实改名。

3. 相关知识与注意点

• 参数展开 #/## 从开头删除最短/最长匹配,%/%% 从末尾删除;pattern 是 Shell 模式,不是通用正则。

• 双引号保护展开结果,避免空格分词和路径名展开。

• ${#变量} 的字符计数受 locale 影响,不等于所有场景的字节数。

• echo -e 的兼容性存在差异,脚本输出优先 printf。

• source/. 在当前 Shell 执行,可能改变当前变量和目录;bash script 通常在独立 Bash 中执行。

• ./script 需要可执行权限,解释器由 shebang 指定。time 的 real 是墙钟耗时,user/sys 是 CPU 时间。

4. 实验步骤

bash 复制代码
name='alpha-beta.txt'
printf '%s\n' "$name" "${#name}" "${name:0:5}"
printf '%s\n' "${name%.txt}" "${name#*-}"
printf '%s\n' "${name/beta/gamma}"
printf '%s\n' {1..3}
seq 1 3
time printf 'hello\n'

预期字符串结果依次为原值、14、alpha、alpha-beta、beta.txt、alpha-gamma.txt;序列为1到3。time 数值取决于环境,不给固定耗时。

5. 原实验截图

6. 验证命令

保存示例为 demo.sh,运行 bash -n demo.sh 检查语法,再 bash demo.sh 对照预期输出。使用 bash -c 检查独立进程环境,source 只加载可信脚本。管道与命令替换的作用域不同,命令替换会去掉输出末尾换行。不把环境实测结果与本文预期值混淆。

相关推荐
默|笙4 小时前
【Linux网络】网络层协议 IP(1)理解报头、网段划分
linux·网络·tcp/ip
沐晓时光4 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
修己xj6 小时前
nslookup 使用指南:两种模式与常用查询技巧
linux
唠玖馆8 小时前
文件系统详解
linux·文件系统·ext2
GeW8 小时前
当Linux内核开始“确定性”,制造高端化才有了底层语法
linux
David猪大卫10 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
星恒随风10 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
fengci.11 小时前
CTF2MISC中等部分
开发语言·前端·学习
StarsGreen12 小时前
libva在intel平台上的前端流程简介
linux
xys_67812 小时前
JavaEE通关手册:初识Java
java·开发语言