${}用于过滤变量的值有时候非常方便,不过每次用都记不住,只好写个例子在此供翻查:(提醒一下,别与命令替换操作符 $(command) 搞混了!另外在XSLT中可以用{$var}来得到一个变量的值)
假设 FNAME="/home/jia/tmp/test.1.sh"
那么有:
${FNAME}
显示变量的全部。
/home/jia/tmp/test.1.sh
${FNAME##/*/}
比对变量開端﹐如果以 /*/ 开头的話﹐砍掉最長的部份。
test.1.sh
${FNAME#/*/}
比对变量开端﹐如果以 /*/ 开头的話﹐砍掉最短的部份。
jia/tmp/test.1.sh
${FNAME%.*}
比对变量末端﹐如果以 .* 結尾﹐砍掉最短的部份。
/home/jia/tmp/test.1
${FNAME%%.*}
比对变量末端﹐如果以 .* 結尾﹐砍掉最长的部份。
/home/jia/tmp/test
${FNAME/sh/bash}
如果在变量中找到 sh ﹐將第一个 sh 替换为 bash。
/home/jia/tmp/test.1.bash
${FNAME//sh/bash}
如果在变量中找到 sh ﹐將全部 sh 替换为 bash。
/home/jia/tmp/test.1.bash
简单总结:
# 比对变量的的开始部分
% 比对变量的结束部分
一个符号表示去掉最短的部分,两个符号表示去掉最长的部分。
没有评论:
发表评论