如何在fish shell脚本中获取程序名称?

时间:2013-06-07 03:31:32

标签: shell fish

在bash中,与ruby一样,程序名称由$ 0给出。什么是鱼?如果必须,我可以做以下事情:

set PROGRAM (ps --no-header -o args -p %self | egrep -o '\S+')[2]

但我确定程序名称必须已在某处可用。我也可以在每个程序的存根中将变量中的程序名设置,但这有维护问题。

3 个答案:

答案 0 :(得分:15)

要获得与命令相同的结果,它是您要查找的脚本文件名。

此信息不存储在变量中,但您可以通过查询status来获取此信息。

basename (status -f)      # The name of the file
status -f                 # The full path of the file

更多信息: http://fishshell.com/docs/2.0/commands.html#status

答案 1 :(得分:4)

fish使用$_作为程序名称。

答案 2 :(得分:0)

fish 3.x

status current-command

请参见3.0文档中的Deprecations section

fish 2.x

使用$_作为程序名称。

请参见2.0文档中的Programmable title section