编写Shell 脚本时,如果变量的值是一个路径的话,我们可以轻易的解析路径path信息,就像php中的pathinfo一样,来获取当中的路径(dirname) 或档名(basename).

变量     结果          说明
${path}     /usr/local/bin/emacs    原本值
${path#/*/} local/bin/emacs     去除第一个资料夹
${path##/*/}    emacs           只取档名(basname)
${path%/*}  /usr/local/bin      只取路径(dirname)
${path:15}  emacs           取第15个字元后的所有字元
${path:10:4}    /bin            取第10个字元后的4 个字元

最后两个用法和Java 的subString 相同。