Search code examples
shellfish

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.


Solution

  • 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