在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