简体   繁体   中英

How to get the program name in a fish shell script?

In bash, as in ruby, the program name is given by $0. What is it in fish? I can do the following if I have to:

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

But I'm sure the program name must be already available somewhere. I could also set the program name in variable at the stub of each program, but that has maintenance problems.

To get the same result as your command, it is the script filename you are looking for.

This information is not stored in a variable, but you get this by querying status .

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

More information: http://fishshell.com/docs/2.0/commands.html#status

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

fish 3.x

status current-command

See Deprecations section of the 3.0 documentation.

fish 2.x

Use $_ for program name.

See Programmable title section of the 2.0 documentation.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM