Cygwin $0 没有按预期工作

Cygwin $0 not working as exptected

我在 cygwin 下有 $0 的奇怪行为。

在我的脚本中,我执行 echo "[=10=]",并作为输出 -bash 而不是路径名。但是,如果我执行 realpath $0,我会得到实际路径。为什么会这样,其他人也遇到过吗?

我正在尝试获取脚本的来源,这会改变事情吗?

是的,采购是原因。采购不会启动不同的流程,因此当脚本 sourced.

时,[=13=] 之类的内容将继续具有它们的值

这是一个脚本myname:

#!/bin/bash
echo "[=10=]"

来源如下:

$ source myname
-bash

这里是 运行 脚本:

$ ./myname
./myname

你来了!

更新:这不是 cygwin 具体的。根据设计,所有 shell 都应以这种方式运行。