我在cygwin下有一个奇怪的0美元行为。
在我的脚本中,我执行echo "$0"
,并获取输出-bash
而不是路径名。但是,如果我执行realpath $ 0,我会得到实际的路径。为什么会这样,其他人也会遇到这种情况吗?
我正在尝试获取脚本,这会改变一些事情吗?
答案 0 :(得分:2)
是的,采购是原因。采购不会启动不同的流程,因此当脚本为$0
时,source
之类的内容会继续显示其值。
这是一个脚本myname
:
#!/bin/bash
echo "$0"
这是采购:
$ source myname
-bash
这是运行脚本:
$ ./myname
./myname
你有!
更新:这不是cygwin
特定的。根据设计,所有shell都应该以这种方式运行。