shell中的系統函式
阿新 • • 發佈:2018-12-08
shell中的系統函式
函式介紹
shell 程式設計和其它程式語言一樣,有系統函式,也可以自定義函式。系統函式中,我們這裡就介紹兩個。
系統函式
basename 基本語法
功能:返回完整路徑最後 / 的部分,常用於獲取檔名
basename [pathname] [suffix]
basename [string] [suffix] (功能描述:basename 命令會刪掉所有的字首包括最後一個(‘/’)
字元,然後將字串顯示出來。
選項:
suffix 為字尾,如果 suffix 被指定了,basename 會將 pathname 或 string 中的 suffix 去掉。
應用例項
案例 1:請返回 /root/shell/bbb.txt 的 "bbb.txt" 部分
看下圖,直接在終端命令列寫
當然啦,你也可以寫到shell指令碼中去,如下圖:
#!/bin/bash #將命令的返回值賦給變數 MYFILENAME1=`basename /root/shell/bbb.txt` #將命令的返回值賦給變數 MYFILENAME2=$(basename /root/shell/bbb.txt .txt) echo "-----帶字尾的檔名-----" echo "檔名是$MYFILENAME1" echo "-----不帶字尾的檔名-----" echo "檔名是$MYFILENAME2"
dirname 基本語法
功能:返回完整路徑最後 / 的前面的部分,常用於返回路徑部分
dirname 檔案絕對路徑 (功能描述:從給定的包含絕對路徑的檔名中去除檔名(非目錄的部分),然後返回剩下的路徑(目錄的部分))
案例 2:請返回 /home/aaa/test.txt 的 /home/aaa
#!/bin/bash #將命令的返回值賦給變數 MYFILENAME1=`basename /root/shell/bbb.txt` #將命令的返回值賦給變數 MYFILENAME2=$(basename /root/shell/bbb.txt .txt) echo "-----帶字尾的檔名-----" echo "檔名是$MYFILENAME1" echo "-----不帶字尾的檔名-----" echo "檔名是$MYFILENAME2" MYDIR=`dirname /root/shell/bbb.txt` echo "檔案目錄是$MYDIR"