bash中的乱七八糟的括号的一个总结,
希望对大家有用
(list)
list将在一个子shell中被执行, 不会对当前shell产生影响
返回list的exit值
{ list; }
可以作组合命令用
list将在当前shell中被执行
list结尾处必须要有新行或';'号
返回list的exit值
list前后必须有空格
((expression))
算术计算
${!p} 二重参数
${!p*} 返回所有以p开头的变量
${p:-word} 如果变量p不存在,返回"word"
${p:=word} 如果变量p不存在,返回"word",并将p的值设为"word"
${p:?word} 如果变量p不存在,将"word"打入STDERR
${p:+word} 如果变量p存在,返回"word"
${p:2} 子串
${p:2:3} 子串
${p#pattern} 返回p开头删除pattern后的字符串,非贪婪模式
${p##pattern} 返回p开头删除pattern后的字符串,贪婪模式
${p%pattern} 返回p结尾删除pattern后的字符串,非贪婪模式
${p%%pattern} 返回p结尾删除pattern后的字符串,贪婪模式
${p/pattern/word} 用"word"替换pattern,pattern前可加#或%,表开头或结尾
${p//pattern/word} 用"word"替换所有pattern,pattern前可加#或%,表开头或结尾
${<file} 返回文件内容
$((expression)) 返回数学表达式的值