加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 01:25:09 所属栏目:安全 来源:网络整理
导读:我似乎记得bash有一个快捷方式,用于引用同一行中的某些内容.我知道并使用!$,!!和朋友们经常我记得阅读能够做如下的事情: mkdir tmp cd !_ 哪里!_代表我不记得的组合. (上面的目标是创建一个目录,并在成功时立即进入.)Google只会产生相同的2个参考表的重新
我似乎记得bash有一个快捷方式,用于引用同一行中的某些内容.我知道并使用!$,!!和朋友们经常我记得阅读能够做如下的事情:
mkdir tmp && cd !_

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

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

mkdir tmp
cd !$

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

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

如果它很重要,我使用zsh与oh-my-zsh,而不是vanilla 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和脚本中都可以使用.
>在单个命令级别工作,而不是在行级别工作.

相比之下,!-prefixed tokens(例如!$来调用最近行的最后一个标记)与shell的[command]历史扩展(man bash的HISTORY EXPANSION部分)有关:

>默认情况下,它们只能在交互式shell中使用,但可以使用set -o history和set -o histexpand(thanks,@ checkner)进行更改.>在线级工作(更准确地说:使用一个Enter键击提交的所有内容,无论它包含多少个别命令或行).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读