gpt4 book ai didi

Bash 引用同一行中的先前参数

转载 作者:行者123 更新时间:2023-11-29 08:56:18 25 4
gpt4 key购买 nike

我似乎记得 bash 有一个 bang-shortcut 用于引用同一行中的内容。我知道并经常使用 !$!! 和 friend 。我记得阅读能够执行以下操作:

mkdir tmp && cd !_

其中 !_ 代表我记不住的组合。 (上面的目标是创建一个目录,并在成功后立即 cd 进入它。)Google 只生成相同的 2 个没有这种组合的引用表的重新发布。

现在我正在使用效率较低的

mkdir tmp
cd !$

它完成了工作,但不是我想要的方式。

有人知道这条难以捉摸的捷径吗?

以防万一,我将 zshoh-my-zsh 一起使用,而不是普通的 bash

最佳答案

mkdir tmp && cd "$_"

是你要找的东西,我相信(如果你确定不需要引号,你可以去掉双引号)。

$_ 在不同的上下文中展开不同,但这里重要的是(来自 man bash ,v3.2.51):

expands to the last argument to the previous command, after expansion.

背景:

注意:以下讨论的是bash,但原则上似乎也适用于zsh

$_ 是所谓的特殊参数,您会在man bash特殊参数部分:

  • 在交互式 shell 和脚本中工作。
  • 单个命令级别工作,而不是在级别工作。

相比之下,! 前缀的标记(例如 !$ 以调用最近一行的最后一个标记)与 shell 的 [command] 历史扩展相关(man bashHISTORY EXPANSION 部分):

  • 默认情况下,它们仅在交互式 shell 中工作,但可以使用 set -o historyset -o histexpand 进行更改(感谢 @chepner)。
  • 级别工作(更准确地说:通过一次 Enter 键提交的所有内容,无论它包含多少个单独的命令或行)。

关于Bash 引用同一行中的先前参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21437249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com