The $_
variable, which should expand with the arguments of the last executed command in Bash, contains _lp_runtime_before
. No matter how many times I run a command, that would be the content it has. Why?
Asked
Active
Viewed 58 times
0

Inian
- 80,270
- 14
- 142
- 161

Nico Rodsevich
- 2,393
- 2
- 22
- 32
-
3Show us the whole script how you are using it, we need a minimal reproducible example to re-create your problem – Inian Oct 24 '19 at 12:46
-
1Note that `$_` is an interactive feature -- not guaranteed to be available in scripts -- and further, that many shell-builtin variables are defined to lose their special behavior should anything assign to them explicitly. – Charles Duffy Oct 24 '19 at 13:10
-
1So this is more a [Unix & Linux SE](https://unix.stackexchange.com/) question. – Amessihel Oct 24 '19 at 13:51
-
`$_` is a [special parameter](https://www.gnu.org/software/bash/manual/bash.html#Special-Parameters) that behaves the same in both interactive and non-interactive shells. – chepner Oct 24 '19 at 15:38
-
I would like to do any simple thing like `$ mkdir foo; cd $_` – Nico Rodsevich Oct 24 '19 at 21:34
-
I recreated the question there. Link: https://unix.stackexchange.com/questions/548630/bashs-var-not-expanding – Nico Rodsevich Oct 24 '19 at 21:47
-
1@NicoRodsevich and slightly modifed it. :) – Amessihel Oct 25 '19 at 08:37
1 Answers
1
Actually, $_ expand to the last argument of the last command line, according to the man page of bash
:
[$_] expands to the last argument to the previous command, after expansion.
If you want the whole arguments, use !:*
:
$ ls -a -l -h test
[blah blah]
$ last_command="!:*" > /dev/null
$ echo $last_command
-a -l -h test
I added a redirection of stdout
to null device to prevent bash to print the expansion.

Amessihel
- 5,891
- 3
- 16
- 40
-
History expansion is typically off-topic here: SO is only for questions about writing software, and history expansion is only enabled by default in interactive shells (as opposed to those executing scripts). – Charles Duffy Oct 24 '19 at 13:11
-