shell中变量内容的删除,替代

时间:2021-09-21 14:41:31

删除

  • ${varname#strMatch}   // 在varname中从头匹配strMatch,然后删除从头到第一次匹配到的位置

  • ${varname##strMatch}  // 在varname中从头匹配strMatch,然后删除从头到最后一次匹配到的位置

  • ${varname%strMatch}  // 在varname中尾头匹配strMatch,然后删除从尾到第一次匹配到的地方

  • ${varname%%strMatch}  // 在varname中尾头匹配strMatch,然后删除从尾到最后次匹配到的地方

  • ${varname/oldStr/newStr}  // 第一个匹配到旧串的,将会被新串取代

  • ${varname//oldStr/newstr}  // 所有匹配到旧串的,将都会被新串取代

替代

  • var=${str-content}  // 如果str没有设置值,var=content,否则var=str

  • var=${str:-content}  // 如果str没有设置值或者str为空,var=content,否则var=str

  • var=${str+content}  // 如果str没有设置值,var= ,否则var=content

  • var=${str:+content}  // 如果str没有设置值或者str为空,var= ,否则var=content

  • var=${str=content}  // 如果str没有设置值,var=str=content ,否则var=content

  • var=${str:=content}  // 如果str没有设置值或者str为空,var=str=content ,否则var=content

  • var=${str?content}  // 如果str没有设置值,content输出到stderr ,否则var=str

  • var=${str:?content}  //如果str没有设置值或者str为空,content输出到stderr ,否则var=str