bash - 以前的参数快捷方式?

标签 bash

在 bash 中,我知道 3 个“args from previous command”快捷方式。它们是:

  1. !^ → 第一个参数,保留空格;
  2. $_ → 最后一个参数,空格保留;
  3. !* → 所有参数,保留空格;

那么还有更多类似的 arg 变量/快捷方式吗? :)


$_ 在我用一个命令调用一个文件时很有用,也就是说在不同的 [long named] 目录中,然后想在我的下一个命令中再次调用它 [即$ stat a\b\c/sub/folder/example.txt; mv $_ . ], 除非其中有空格,否则它不起作用。

为什么 $_ 不保留空格?要明白我的意思,请输入:

$ echo "1""一个带引号的字符串";因为我在 $_;做 echo\"$i\";完成 并与

比较

$ echo 1 2 "3 4 5"; 然后按回车键 然后:$ for i in !*;做 echo\"$i\"done;

您能否也解释一下为什么您必须按 enter ^ 然后执行“for”循环才能使 !* 工作? [以及为什么 $_ 无需按回车键就可以工作(也就是,您可以使用“;”来组合命令)]

最佳答案

$ 进行变量扩展,而 ! 进行历史扩展。要让 ! 访问参数,您必须将命令添加到 bash 历史记录中,这会在执行时/按 enter 键时发生。

关于bash - 以前的参数快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590503/

相关文章:

git - 单引号和双引号中的 PS1 变量 - bashrc

bash - 根据列中出现的数字从大到小对 CSV 文件进行排序

linux - 文件行在执行时被更改

linux - 在 Windows 上的 Ubuntu 上的 Bash 上设置 $PATH 的问题(Linux 子系统)

macos - 如何创建 Bash 别名?

linux - 附加到特定行的末尾

java - 如何阻止 Bash 进入下一个循环迭代,直到当前进程完成?

bash - 文件的 md5sum 验证

linux - centos7“导出: command not found

bash - 在 pyCharm 上使用 tensorflow