在 bash 中,我知道 3 个“args from previous command”快捷方式。它们是:
- !^ → 第一个参数,保留空格;
- $_ → 最后一个参数,空格不保留;
- !* → 所有参数,保留空格;
那么还有更多类似的 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/