上一条命令的最后一个参数是什么?

Tim*_*Tim 12 bash

$_ 据说是上一个命令的最后一个参数。

所以我想知道为什么不是,EDITOR="emacs -nw"而是EDITOR在下面的例子中?

为什么不是"emacs -nw"最后一个论点的一部分?

更一般地说,一个论点的定义是什么,最后一个论点是什么?

谢谢。

$ export EDITOR="emacs -nw"
$ echo $_
EDITOR
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 13

Bash 处理变量赋值,当它们被允许作为参数(带有alias, declare, export, local, readonly, 和typeset),在其他任何事情之前(或者更确切地说,它在其他任何事情之前识别它们 - 扩展适用于分配给变量的值)。当进行单词扩展时,剩余的命令是export EDITOR,因此_设置为EDITOR

一般而言,参数是扩展后剩余的“单词”(不包括变量赋值和重定向)。

有关详细信息,请参阅Bash 手册中的简单命令扩展