会计考友 发表于 2012-8-4 12:19:50

linux红帽认证:在Linux中对Bash变量内容修改的方法(2)

  ◆3 、承上题,如果是从后面开始,删除/*呢?
  echo ${vbird%%/*/}
  /home/vbird/testing/testing.x.sh——都没有删除
  echo ${vbird%%/*}
  --------都被删除了
  echo ${vbird%/*}
  /home/vbird/testing ——只删除 /testing.x.sh部分中华考试网(www.Examw。com)
  在这个例子中要特别注意,那个% 比对的是“最后面那个字符”的意思,所以第一个当然不对,因为vbird 这个变量的内容最后面是h 而不是/.至于%%/*则是删除“最长的那个/*”,当然就是全部,而%/* 则是最短的那个。(自注:最短最长同上注,虽然% 表示反向的比对,但需注意的是在${variable} 中输入的时候仍然按着从左到右的顺序,即与变量内容中的字符的顺序相同,中国自学编程网,www.zxbc.cn 。如下例:
  echo ${vbird%t*h}
  /home/vbird/testing/tes ——t.ing.x.sh被删除了
  如果是
  echo ${vbird%h*t}
  /home/vbird/testing/testing.x.sh——则输出没有变化(因为比对都是与第一个字符比,变量内容的第一个字符为h ,而命令中给出的第一个字符为t ,与真实的变量内容不符。)
页: [1]
查看完整版本: linux红帽认证:在Linux中对Bash变量内容修改的方法(2)