用途
返回一個字符串參數的基本文件名稱。
語法
basename String [ Suffix ]
描述
basename 命令讀取 String 參數,刪除以 /(斜槓) 結尾的前綴以及任何指定的 Suffix 參數,並將剩餘的基本文件名稱寫至標準輸出。basename 命令應用以下創建基本文件名稱的規則:
- 如果 String 參數是 //(雙斜槓) 或如果 String 參數包含的都是斜槓字符,則將字符串更改爲單個 /(斜槓)。跳過步驟 2 到 4。
- 從指定字符串除去任何拖尾的 / 字符。
- 如果在 String 參數中剩餘任何 / 字符,則除去字符串的前綴直到(包含)最後一個 / 字符。
- 如果指定 Suffix 參數,且它和字符串中的剩餘的字符相同,則不修改此字符串。例如,輸入:
K > basename /u/dee/desktop/cns.boo cns.boo
結果是:
cns.boo
如果指定 Suffix 參數,且它和字符串中所有字符都不相同,但和字符串的後綴相同,則除去指定後綴。例如,輸入:
K > basename /u/dee/desktop/cns.boo .boo
結果是:
cns
不能在字符串中查找到指定的後綴不作爲錯誤處理。
basename 和 dirname命令通常用於 shell 腳本中的命令替換來指定和指定的輸入文件名稱有所差異的輸出文件名稱。
退出狀態
該命令返回以下退出值:
0 成功完成
〉0 發生錯誤
示例
- 要顯示一個 shell 變量的基本名稱,請輸入:
basename $WORKFILE
此命令顯示指定給 shell 變量 WORKFILE 的值的基本名稱。如果 WORKFILE 變量的值是 /home/jim/program.c 文件,則此命令顯示 program.c。
- 要構造一個和另一個文件名稱相同(除了後綴)的文件名稱,請輸入:
OFILE=`basename $1 .c`.o
此命令指定給 OFILE 文件第一個位置上的參數($1)的值,但它的 .c 後綴更改至 .o。如果 $1 是 /home/jim/program.c 文件,則 OFILE 成爲 program.o。因爲 program.o 僅是一個基本文件名稱,它標識在當前目錄中的文件。
注:`(重音符號)指定命令替換。原文:http://monkeymusic.blog.163.com/blog/static/4797639200912533652666/