在目标Shell脚本中,如何知道文件从哪个符号链接链接?

时间:2018-08-30 10:20:53

标签: shell

环境:Android和Shell。 文件如下:

link1 ->target.sh
link2 ->target.sh
link3 ->target.sh

现在在目标Shell脚本中,如何知道当前正在链接到哪个符号链接文件? 当从不同的链接文件调用目标脚本时,它需要调用不同的函数。 非常感谢!

1 个答案:

答案 0 :(得分:0)

第一个位置参数$0包含已执行的文件。

目标target.sh

#!/bin/sh
echo $0

然后

$ ./target.sh
./target.sh
$ link1
link1

请注意,$0包含完整路径。如果只需要可执行文件名称,则可以使用basename删除路径:

#!/bin/sh

EXECUTABLE=$(basename "$0")

case "${EXECUTABLE}" in
    link1)
        echo "Called as link1"
        # function1
        ;;
    link2)
        echo "Called as link2"
        # function2
        ;;
    link3)
        echo "Called as link3"
        # function3 
        ;;
    target.sh)
        echo "Called as target.sh"
        ;;
    *)
        echo "Some error message"
        ;;
esac