- 获取自身所在路径
常见错误是使用命令或$PWD变量,这是不对的,因为此命令、变量是显示用户当前的工作目录;如果用户的执行路径不在脚本所在目录的话,就会出现无法找到文件的情况,如:使用crontab添加的计划任务,其执行路径是在用户家目录,这样一来就会出现因路径获取不对而找不到文件的错误:
$0,$0是BASH环境下的特殊变量,根据执行环境不同结果也大不相同,可见:
故使用cd `dirname $0` ; pwd的方式来获取路径是不可取的;这时就有另一个变量BASH_SOURCE,GUN定义:
我们来看下效果:
故,获取脚本路径可使用:#!/bin/bash BasePath=$(cd `dirname ${BASH_SOURCE}` ; pwd)
感谢分享,实测有用,解决了我滥用$0导致的路径问题!
很高兴能帮助到你