如何确定一个文件是否从bash中被引用?
这与这个问题非常相似,然而,没有任何一个提出的解决方案可行。例如,给定被引用的文件setup.bash
:
if [ "$_" == "$0" ]
then
echo "Please source this script. Do not execute."
exit 1
fi
如果您使用以下命令进行源操作:
/bin/bash -c ". ./setup.bash;"
,您将看到打印出的消息“请对此脚本进行源操作。不要执行它。”。这是为什么呢?
我以这种方式进行文件源操作,因为我的最终目标是执行一个依赖于这个已被源操作的文件的bash脚本,也就是说,我最终想要执行以下操作:
`/bin/bash -c ". ./setup.bash; some_command_that_relies_on_setup_dot_bash;"`
如果我直接在bash中运行这些命令,比如:
. ./setup.bash
some_command_that_relies_on_setup_dot_bash
源文件没有显示信息。我做错了什么?