BASH_SOURCE[0] BASH_SOURCE[0] 等价于 BASH_SOURCE, 取得当前执行的shell文件所在的路径及文件名。
在目录/home/sam/linux编程练习/Shell下新建脚本test.sh:
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/../" && pwd )"
# DIR=$( cd "$( dirname ${BASH_SOURCE[0]} )/../" && pwd )
# DIR=`cd $( dirname ${BASH_SOURCE[0]} )/../ && pwd`
echo $DIR
echo "ok"
执行的时候,需要棵执行权限:chmod +x test.sh 然后执行./test.sh 而不是 sh ./test.sh
经测试以上写都正确:输出
/home/sam/linux编程练习
ok
其实就是一个:1.取得当前执行的shell文件所在的完整路径 2. 执行dirname,并进入父级目录 3. 打印当前工作目录 的过程
# echo "${BASH_SOURCE[0]}"
# echo "${BASH_SOURCE}"
# echo "$( dirname "${BASH_SOURCE[0]}" )"
# DIR="$( cd "$( dirname ${BASH_SOURCE[0]} )" && pwd )"
# echo $DIR
本文介绍了一种在Shell脚本中获取当前执行文件所在路径的方法。通过使用BASH_SOURCE数组结合dirname命令和cd命令,可以方便地定位到脚本所在的目录,并输出其绝对路径。
281

被折叠的 条评论
为什么被折叠?



