Shell变量常用操作
shell变量常用操作
/dir1/dir2/dir3/my.file.txt
去掉左右边
# 是去掉左边(在鉴盘上 # 在 $ 之左边)
% 是去掉右边(在鉴盘上 % 在 $ 之右边)
| 名称 |
命令 |
描述 |
输出结果 |
| 相对路径 |
${file#*/} |
拿掉第一条 / 及其左边所有 |
dir1/dir2/dir3/my.file.txt |
| 文件名称 |
${file##*/} |
拿掉最后一条 / 及其左边所有 |
my.file.txt |
| 文件后缀 |
${file#*.} |
拿掉第一个 . 及其左边 |
file.txt |
| 文件后缀 |
${file##*.} |
拿掉最后一个 . 及其左边所有 |
txt |
| 文件路径 |
${file%/*} |
拿掉最后条 / 及其右边所有 |
/dir1/dir2/dir3 |
| 文件路径 |
${file%%/*} |
拿掉第一条 / 及其右边所有 |
空值 |
| 去掉文件后缀 |
${file%.*} |
拿掉最后一个 . 及其右边所有 |
/dir1/dir2/dir3/my.file |
| 去掉文件后缀 |
${file%%.*} |
拿掉第一个 . 及其右边所有 |
/dir1/dir2/dir3/my |
变量赋值
| 名称 |
命令 |
描述 |
输出结果 |
| 切片 |
${<0:5>} |
提取最左边的 5 个字节 |
/dir1 |
| 切片 |
${<5:5>} |
提取第 5 个字节右边的连续 5 个字节 |
/dir2 |
| 替换1次 |
${file/dir/path} |
将第一个 dir 提换为 path |
/path1/dir2/dir3/my.file.txt |
| 替换全部 |
${file//dir/path} |
将全部 dir 提换为 path |
/path1/path2/path3/my.file.txt |
| 保留空值及非空值 |
${file-my.file.txt} |
没有设定,则my.file.txt作默认值 |
|
| (保留非空值) |
${<-my.file.txt>} |
假如 $file 没有设定或为空值 |
|
| 不保留任何值 |
${file+my.file.txt} |
不管为何值,my.file.txt作默认值 |
|
| 保留没设定及空值 |
${<+my.file.txt>} |
若非空值,则使用 my.file.txt |
|
| 保留空值及非空值 |
${file=my.file.txt} |
若没设定,则默认my.file.txt |
|
| 保留非空值 |
${<=my.file.txt>} |
若没设定或为空值,赠默认 my.file.txt |
|
| 保留空值及非空值 |
${file?my.file.txt} |
若没设定,则输出my.file.txt |
|
| 保留非空值 |
${<?my.file.txt>} |
若没设定或为空值,则输出my.file.txt |
|
变量转换
| 名称 |
命令 |
描述 |
输出结果 |
| 变量长度 |
${#file} |
计算变量值长度 |
27 |
| 首字段大写 |
${var^} |
|
|
| 全部大写 |
${var^^} |
|
|
| 首字母小写 |
${var,} |
|
|
| 全部小写 |
${var,,} |
|
|
数组操作
| 名称 |
命令 |
描述 |
输出结果 |
| 数组长度 |
${#A[@]} |
计算数组长度 |
|
|
|
|
|