2

如何在新命令中使用上一个命令的第二个参数?

例如,与

$ mkdir test 

我创建了一个目录,如何使用目录名称来更改此目录?

$ mkdir test && cd use_var
4

4 回答 4

6

$_是前一个命令的最后一个(最右边)参数。

mkdir gash && cd "$_"

(我不创建名为 的文件或目录test,这是内置 shell 的名称,可能会引起混淆)

于 2012-09-12T13:23:41.040 回答
5

通过历史扩展,可以引用当前命令行中的任意单词

mkdir dir1 && cd "!#:1"
# 0     1   2  3  4

!#指到目前为止键入的行,并:1指第一个单词(mkdir从 0 开始)。

如果您在脚本中使用它(即,非交互式外壳),您需要打开历史扩展set -H和打开历史扩展set -o history

于 2012-09-12T13:28:41.677 回答
2

Esc+.将上一个命令的最后一个参数放在光标的当前位置。在bashshell 和kshshell 中测试。

于 2012-09-12T13:27:19.173 回答
1

我为此使用函数。在你的 shell 中输入:

mkcd() { mkdir "$1" ; cd "$1" ; }

现在你有了一个新命令mkcd

如果您反复需要,请将该行放入文件中~/.bash_aliases(如果您使用bash; 其他 shell 使用不同的名称)。

于 2012-09-12T13:42:42.010 回答