用法:
CUR_DIR=$(cd "$(dirname "${BASH_SOURCE-$0}")"; pwd)
解釋:
一、BASH_SOURCE-$0
如果是sh test.sh或者./test.sh的運行方式,那么很簡單,直接使用$0就可以文件名
那么如果是source test.sh或者. ./test.sh的方式運行,$0就變成了”-bash”了。這個時候就需要使用$BASH_SOURCE了。BASH_SOURCE-$0是獲取當前文件的文件名
二、dirname指令
1、功能:從給定的包含絕對路徑的文件名中去除文件名(非目錄的部分),然后返回剩下的路徑(目錄的部分)
2、用法:dirname filename
例如下面幾個例子
(1)# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
(2)# dirname /boot/grub/grub.conf
/boot/grub
(3)# dirname /etc/inittab
/etc
(4)# echo `pwd` && dirname modprobe.conf
/etc
.
(5)#echo `pwd` && dirname sysconfig/network-scripts/
/etc
sysconfig
三、basename指令
1、功能:從給定的包含絕對路徑的文件名中去除左邊目錄部分或者同時去除某個后綴的內容(目錄的部分),然后返回剩下的部分(非目錄的部分)
2、用法:basename filename [suffix]
例如下面幾個例子
(1)#basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
(2)#basename /boot/grub/grub.conf
grub.conf
bt4破解無線網絡
(3)#echo `pwd` && basename sysconfig/network-scripts/
/etc
network-scripts
(4)# basename /boot/grub/grub.conf.bak .bak
grub.conf
(5)# basename /boot/grub/grub.conf.bak .conf.bak
grub