如何在bash中使用不同参数重用命令?

Jon*_*son 4 bash scripting command-line

我有两个脚本经常需要使用相同的参数运行:

$ populate.ksh 9241 && check.ksh 9241
Run Code Online (Sandbox Code Playgroud)

当我需要更改参数(在此示例中为9241)时,我可以返回并编辑历史记录中的行.但由于我需要改变两个地方的数字,我有时会打错字.我希望能够只更改一次参数以在两个地方更改它.

Chr*_*ung 10

在bash中:

!!:gs/9241/9243/
Run Code Online (Sandbox Code Playgroud)

是的,它使用gs///,而不是s///g.:-)

(zigdon的答案使用最后一个命令pop,例如populate.sh.我的答案使用最后一个命令,完全停止.选择适合你的命令.)


zig*_*don 5

您还可以使用历史记录替换功能:

!pop:gs/9241/1234
Run Code Online (Sandbox Code Playgroud)

像这样:

$ populate.ksh 9241 && check.ksh 9241
...
$ !pop:gs/9241/1234
populate.ksh 1234 && check.ksh 1234
...
Run Code Online (Sandbox Code Playgroud)