gpt4 book ai didi

python - 如何在没有 $0 的情况下获取 shellscript 文件名?

转载 作者:太空狗 更新时间:2023-10-29 21:41:36 33 4
gpt4 key购买 nike

我尝试在 shellscript 上使用 python 练习 if __name__ == "__main__":

示例脚本如下:

a.sh:

#!/bin/bash

filename="a.sh"

function main() {
echo "start from $0"
echo "a.sh is called"
source b.sh
bfunc
}

[[ "$0" == "${filename}" ]] && main

b.sh:

#!/bin/bash

filename="b.sh"

function main() {
echo "start from $0"
echo "b.sh is called"
}

function bfunc() {
echo "hello bfunc"
}

[[ "$0" == "${filename}" ]] && main

您可以使用 bash a.sh 调用它。

如果您调用 bash a.sh,您将得到如下所示:

start from a.sh
a.sh is called
hello bfunc

这是我的问题。如何在不使用 $0 的情况下获取文件名本身?我不想直接写文件名,即我想将文件名值传递给${filename}

不知道的看链接就是上面的python做法:What does if __name__ == "__main__": do?

如何检查 b.sh 是从命令行启动还是通过从 a.sh 包含执行?

最佳答案

您可以使用变量$BASH_SOURCE 来获取当前脚本文件的名称。

if [[ "$0" == "$BASH_SOURCE" ]]
then
: "Execute only if started from current script"
else
: "Execute when included in another script"
fi

关于python - 如何在没有 $0 的情况下获取 shellscript 文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48516449/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com