在bash腳本中如何獲取自身路徑


用法:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM