bash大括号参数扩展(Parameter Expansion)
2014-03-06 14:17
232 查看
假设我们定义了一个变量为:
总结
一个
两个
总结
总结字符串替换表达式语法为
总结
没有
有
更多用法请参考:Parameter Expansion
file=/dir1/dir2/dir3/my.file.txt
字符串截取
按分隔符截取
${file#*/}截取第一个
/右边的字符串
dir1/dir2/dir3/my.file.txt
${file##*/}截取最后一个
/右边的字符串
my.file.txt
${file%/*}截取最后一个
/左边的字符串
/dir1/dir2/dir3
${file%%/*}截取第一个
/左边的字符串 (空值)
总结
#语法为
# * separator截取
separator右边的字符串
%语法为
% separator *截取
separator左边的字符串
一个
#或
%表示贪婪截取
两个
#或
%标示非贪婪截取
substring
${file:0:5}从
0开始,截取
5个字符
/dir1
${file:5:5}从
5开始,截取
5个字符
/dir2
${file::5}从
0开始,截取
5个字符
/dir1
总结
substring表达式语法为
${var:pos:length}, 标示对变量
var从
pos开始截取
length个字符,
pos为空标示
0
字符串替换
${file/dir/path}把第一个
dir替换成
path:
/path1/dir2/dir3/my.file.txt
${file//dir/path}把所有
dir替换成
path:
/path1/path2/path3/my.file.txt
总结字符串替换表达式语法为
${var/src/dst}或
${var//src/dst}。一个
/标示替换第一个
src两个
//标示替换所有
src
默认值
${file-my.file.txt}:
$file没有设定,则使用
my.file.txt返回,
$file空值不做处理
${file:-my.file.txt}:
$file没有设定或者为空值,则使用
my.file.txt返回
${file+my.file.txt}:
$file设定,空值或非空值,均使用
my.file.txt返回
${file:+my.file.txt}:
$file为非空值,使用
my.file.txt返回,未设定或空值不做处理
${file=my.file.txt}:
$file没有设定,则把
my.file.txt赋值给
$file并返回,空值不处理
${file:=my.file.txt}:
$file没有设定或者为空值,则把
my.file.txt复制给
$file并返回
${file?my.file.txt}:
$file没有设定,把
my.file.txt输出到
STDERR, 空值不做处理
${file:?my.file.txt}:
$file没有设定或为空值,把
my.file.txt输出到
STDERR
总结
-变量不存在返回默认值
+变量存在返回默认值
=变量不存在赋值并返回默认值
?变量不存在默认值输出到
STDERR
没有
:未设定为不存在,空值有意义
有
:未设定和空值均标示不存在
其他
${#file}返回字符串长度
${file: -4}返回字符串最后四个字节,注意和
${file:-4}的区别
更多用法请参考:Parameter Expansion
相关文章推荐
- bash大括号参数扩展(Parameter Expansion)
- 学习Bash 参数和参数扩展
- bash shell 大括号扩展
- Linux 技巧: Bash 参数和参数扩展
- [2012-04-25]shell大括号参数扩展(Parameter Expansion)
- linux下大括号扩展参数
- 【转】Linux 技巧: Bash 参数和参数扩展
- Linux 技巧: Bash 参数和参数扩展
- Linux 技巧: Bash 参数和参数扩展
- Linux 技巧: Bash 参数和参数扩展
- BASH - 参数扩展
- Bash 参数和参数扩展
- bash的brace expansion(大括号扩展)功能
- bash中输出特定变量名的内容,属于 参数替换和扩展 这一章节
- Shell 大括号参数扩展及各类括号在 Shell 编程中的应用
- bash之参数扩展(Parameter Expansion)
- Bash 参数和参数扩展
- Shell基础篇---shell简介之bash编程之参数说明
- System.Guid[] 不包含 Contains 的定义,并且最佳扩展方法重载参数无效
- 扩展41:查看Apache php mysql nginx的编译参数: