1. 程式人生 > >shell中的系統函式

shell中的系統函式

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"