获取当前运行的shell文件的路径

  • 此文不考虑过多的特殊情形。
  • 在当前目录建立shell脚本文件test.sh,内容如下:
#!/bin/bash

source parent/second.sh
echo "first: $(readlink -f  ${BASH_SOURCE[0]})"

  • 在parent/下建立second.sh,内容如下:
#!/bin/bash

echo "second: $(readlink -f ${BASH_SOURCE[0]})"
  • 在当前目录输入: source test.sh,得到输出:

second: /home/chenpan/salt/test_code/parent/second.sh
first: /home/chenpan/salt/test_code/subshell.sh
 

  • 总结:命令$(readlink -f ${BASH_SOURCE[0]})可以得到此命令所在的shell文件的绝对路径,不论它在什么地方被运行。

你可能感兴趣的:(获取当前运行的shell文件的路径)