如何使用 bash 历史记录运行带有历史记录中命令参数的命令?
我知道我可以!!
用来重新运行最后一个命令,但是如何使用这些参数运行新命令?
例如,我首先运行:
~/somefolder/script.sh somefile
Run Code Online (Sandbox Code Playgroud)
我要快跑
~/somefolder/script.sh anotherfile
Run Code Online (Sandbox Code Playgroud)
我试过了,!! anotherfile
但没有用。
或者更好的是,我如何运行!-2 newarguments
以使用新参数运行倒数第二个历史命令?
我不想使用箭头来滚动历史,然后在参数上退格。
要选择命令名称,请使用 :0 修饰符:
$ man bash
$ !!:0 csh
man csh
Run Code Online (Sandbox Code Playgroud)
使用 !* 选择带有最新命令的所有参数
$ man sed awk perl
$ which !*
which sed awk perl
/usr/bin/sed
/usr/bin/awk
/usr/bin/perl
Run Code Online (Sandbox Code Playgroud)
选择先前相对于当前命令执行的第二个命令,并使用以下命令选择其所有参数:
$ echo !-2:*
echo sed awk perl
sed awk perl
Run Code Online (Sandbox Code Playgroud)
选择先前相对于当前命令执行的第三个命令,并选择其第二个参数:
$ echo !-3:2
echo awk
awk
Run Code Online (Sandbox Code Playgroud)
选择最后一个以“which”开头的命令并插入它的第三个参数:
$ echo !which:3
echo perl
perl
Run Code Online (Sandbox Code Playgroud)
综上所述,您的两个具体问题的答案是:
归档时间: |
|
查看次数: |
265 次 |
最近记录: |