小编h.j*_*.k.的帖子

在 bash shell 脚本中运行和获取源之间的区别?

要么我在这里问的是非常非正统的/非常规的/冒险的,要么我的 Google-fu 技能不符合要求...

bashshell 脚本中,是否有任何简单的方法可以判断它是由另一个 shell 脚本获取的,还是由它自己运行的?换句话说,是否可以区分以下两种行为?

# from another shell script
source myScript.sh

# from command prompt, or another shell script
./myScript.sh
Run Code Online (Sandbox Code Playgroud)

我正在考虑做的是创建一个类似于实用程序的 shell 脚本,其中包含bash可以在获取时可用的函数。但是,当这个脚本自己运行时,我也喜欢它根据定义的函数执行某些操作。这个shell脚本是否有某种环境变量可以选择,例如

some_function() {
    # ...
}
if [ -z "$IS_SOURCED" ]; then
    some_function;
fi
Run Code Online (Sandbox Code Playgroud)

最好,我正在寻找一种不需要调用者脚本设置任何标志变量的解决方案。

编辑:我知道采购和运行脚本之间的区别,我想在这里找出是否可以分辨正在使用的脚本的区别(两种方式)。

bash shell-script

24
推荐指数
3
解决办法
6292
查看次数

为什么大括号扩展范围使用两个点而不是三个(省略号)?

我终于理解/发现了为什么我从来没有正确使用bash's(以及zsh's)大括号扩展范围:语法{1..10}代替了我假设的省略号,即{1...10}.

我可以知道为什么选择两个点而不是三个点吗?如(维基百科)链接所示,省略号在计算机编程中的使用很常见并且很好理解,这就是为什么这激起了我的好奇心。

bash zsh history brace-expansion

10
推荐指数
1
解决办法
1628
查看次数

标签 统计

bash ×2

brace-expansion ×1

history ×1

shell-script ×1

zsh ×1