- 获取自身所在路径
常见错误是使用命令或$PWD变量,这是不对的,因为此命令、变量是显示用户当前的工作目录;如果用户的执行路径不在脚本所在目录的话,就会出现无法找到文件的情况,如:使用crontab添加的计划任务,其执行路径是在用户家目录,这样一来就会出现因路径获取不对而找不到文件的错误:
$0,$0是BASH环境下的特殊变量,根据执行环境不同结果也大不相同,可见:
故使用cd `dirname $0` ; pwd的方式来获取路径是不可取的;这时就有另一个变量BASH_SOURCE,GUN定义:
我们来看下效果:
故,获取脚本路径可使用:#!/bin/bash BasePath=$(cd `dirname ${BASH_SOURCE}` ; pwd)
感谢分享,实测有用,解决了我滥用$0导致的路径问题!
很高兴能帮助到你
Wonderful post! We are linking too tyis particularlky great post oon oour
site. Keep up the gteat writing.
Great webb site youu have got here.. It’s difficultt to find high-quality writing like
yourds these days. I trtuly appreciate individuals like you!
Takke care!!
Thanks very nice blog!