环境:Android和Shell。 文件如下:
link1 ->target.sh
link2 ->target.sh
link3 ->target.sh
现在在目标Shell脚本中,如何知道当前正在链接到哪个符号链接文件? 当从不同的链接文件调用目标脚本时,它需要调用不同的函数。 非常感谢!
答案 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