Meaning/usage of $_ in bash
    VirginSnow at vfemail.net 
    VirginSnow at vfemail.net
       
    Wed Jul 23 13:16:54 EDT 2008
    
    
  
> From: "Michael ODonnell" <michael.odonnell at comcast.net>
> Date: Wed, 23 Jul 2008 12:57:14 -0400
>  "When bash invokes an external command, the variable $_ is set to
>   the full file name of the command and passed to that command in its
>   environment."
> ...which seems to describe one piece of how it actually works in one
> situation.  For example, if I create and execute a shell script thus:
Right.  The "other situation" is when bash executes a command
internally (without invoking an external command).  In this case, bash
sets _ to the the last token on the last command line (the last
parameter in the command, if it has any, or the command name, if the
command had no parameters).
So:
  $ date > /dev/null
  $ echo $_
  date
  $ date -d now > /dev/null
  $ echo $_
  now
I tend to use $_ as a shortcut when doing a mkdir/cd combo:
  $ mkdir -p /tmp/foo/some-really-long-name-i-dont-feel-like-typing-again
  $ cd $_
  $ pwd
  /tmp/some-really-long-name-i-dont-feel-like-typing-again
    
    
More information about the gnhlug-discuss
mailing list