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

 in冷霜天 发布于 2023-01-30 15:42

我似乎记得bash在同一行中引用某些内容时有一个快捷方式.我经常知道和使用!$,!!和朋友.我记得阅读能够做如下的事情:

mkdir tmp && cd !_

哪里!_代表我不记得的组合.(上述目标是成功创建一个目录并立即cd进入.)Google只会产生相同的2个参考表的重新发布,这些参考表没有这种组合.

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

mkdir tmp
cd !$

完成工作但不是我想要的方式.

有谁知道这个难以捉摸的捷径?

在这重要的情况下,我用zshoh-my-zsh,不香草bash.

2 个回答
  • mkdir tmp && cd "$_"
    

    我相信你正在寻找的东西(如果你确定不需要报价,你可以放弃双引号).

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

    扩展后扩展到上一个命令的最后一个参数.

    背景:

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

    $_是一个所谓的特殊参数,您可以$在以下Special Parameters部分列出其中(没有前缀)列出的参数man bash:

    在交互式shell和脚本中都可以使用.

    单个命令级别工作,而不是在行级别.

    相比之下,!-prefixed令牌(例如!$回顾最近线的最后一个令牌)涉及壳的[指令]历史扩展(部分HISTORY EXPANSIONman bash):

    默认情况下,它们仅在交互式shell中工作,但可以使用set -o historyset -o histexpand(感谢@chepner)更改.

    在线级工作(更准确地说:通过一次Enter击键提交的所有内容,无论它包含多少个别命令或行).

    2023-01-30 15:45 回答
  • !# 是指到目前为止的命令行,您可以从中提取特定的单词:

    mkdir tmp && cd !#:1
    

    相同的语法也适用zsh.

    2023-01-30 15:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有