Shell 如何获取fish脚本自身的路径

Shell 如何获取fish脚本自身的路径,shell,fish,Shell,Fish,在bash中,我们可以使用$0获取脚本的路径。根据官方文件,我们似乎可以通过$在fish脚本中实现这一点 然而,如果我试着写一个像这样的fish脚本,并运行它,它将只打印一个换行符 #!/usr/bin/fish echo $_ 而在反应性鱼类中,echo$将以书面形式给出echo,$将以书面形式传递“command”作为的参数 我对$的奇怪行为以及它的用途感到困惑。$有点困惑,但它不是“鱼脚本的路径”,而是当前前台作业的名称 要获取脚本的路径,请使用status--current filen

在bash中,我们可以使用
$0
获取脚本的路径。根据官方文件,我们似乎可以通过
$在fish脚本中实现这一点

然而,如果我试着写一个像这样的fish脚本,并运行它,它将只打印一个换行符

#!/usr/bin/fish
echo $_
而在反应性鱼类中,
echo$
将以书面形式给出
echo
$
将以书面形式传递“command”作为
的参数


我对
$的奇怪行为以及它的用途感到困惑。

$有点困惑,但它不是“鱼脚本的路径”,而是当前前台作业的名称


要获取脚本的路径,请使用
status--current filename
(如果以交互方式启动,则为“标准输入”)

它实际上是大写的:“标准输入”。不知道现在把它全部改成小写是否为时已晚,因为它不是一个句子,所以大写很奇怪。你能给我指一下文档中让你相信
$\uu
会包含当前文件名的部分吗?当前文档中唯一提到它的地方是“可编程标题”部分,它明确地说它是“要放在前台的工作名称”。首先,我认为需要更多的例子来澄清
可编程标题
部分到底想说什么。第二,因为函数的行为类似于fish脚本。例如,以
$argv[$i]
的方式接受参数和接收参数。我有时会想,既然
$\uU
可以给出包含函数的名称,
$\uU
也可以在`$\`处于顶层时给出脚本的名称。第三,由于bash使用
$0
来表示脚本本身,因此我认为fish使用类似的宏来实现这一点。