3
任何人都可以闡述## * /在UNIX Shell腳本中的工作方式。我已經看到它在Korn Shell中使用。它專門用於刪除文件的擴展名。## * /在UNIX Shell腳本中使用
例如 func_write_app_log的 「o刪除狀態文件$ {CIE_STATUS_FILE ## * /}」
這裏假設該文件是CIE_STATUS_FILE.DAT,那麼## * /顯示CIE_STATUS_FILE
任何人都可以闡述## * /在UNIX Shell腳本中的工作方式。我已經看到它在Korn Shell中使用。它專門用於刪除文件的擴展名。## * /在UNIX Shell腳本中使用
例如 func_write_app_log的 「o刪除狀態文件$ {CIE_STATUS_FILE ## * /}」
這裏假設該文件是CIE_STATUS_FILE.DAT,那麼## * /顯示CIE_STATUS_FILE
這也適用於Bash和描述here :
$ {串##串}
刪除從$字符串前面的子串$最長匹配。
*
是一個通配符,意思是匹配任何東西。您的示例從文件中刪除路徑,而不是擴展名。
$ bazfile='/foo/bar/baz.txt' $ echo ${bazfile##*/} baz.txt
要刪除您要使用%
擴展:
$ {字符串%子}
刪除從$字符串後面的子串$最短的匹配。
$ echo ${bazfile%.*} /foo/bar/baz
您可以刪除前綴和後綴匹配有這些構建模式。這些由POSIX指定並在許多shell中工作,例如, zsh,bash,ksh甚至普通的舊bourne shell(sh)。該參考文獻是http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02 – Jens 2011-08-29 13:30:08