SHELL脚本获取自身所在路径和名字

  • 获取自身所在路径
    常见错误是使用命令或$PWD变量,这是不对的,因为此命令、变量是显示用户当前的工作目录;如果用户的执行路径不在脚本所在目录的话,就会出现无法找到文件的情况,如:使用crontab添加的计划任务,其执行路径是在用户家目录,这样一来就会出现因路径获取不对而找不到文件的错误:

    $0,$0是BASH环境下的特殊变量,根据执行环境不同结果也大不相同,可见:

    故使用cd `dirname $0` ; pwd的方式来获取路径是不可取的;这时就有另一个变量BASH_SOURCE,GUN定义:

    我们来看下效果:

    故,获取脚本路径可使用:

    #!/bin/bash
    BasePath=$(cd `dirname ${BASH_SOURCE}` ; pwd)
  • 获取自身脚本名称
    同样使用$BASH_SOURCE和$0来看下效果:

    故,获取脚本自身可使用:

    #!/bin/bash
    BaseName=$(basename $BASH_SOURCE)

《SHELL脚本获取自身所在路径和名字》有2条留言

留下评论

error: Content is protected !!