在linux/bash中添加命令行参数

B T*_*B T 6 linux bash command-line-arguments

我想将给脚本的命令行参数传递给另一个命令,但我还想先在前面添加一些额外的参数.我怎么能用bash做到这一点?

这将把所有参数发送到命令:

command $@
Run Code Online (Sandbox Code Playgroud)

但是我想要更像的东西:

command [argument1, argument2, $@]
Run Code Online (Sandbox Code Playgroud)

你如何在bash中做这样的事情?

gle*_*man 15

@ ThatOtherGuy的回答是正确的.

如果您希望在位置参数中"取消"一些参数,请执行以下操作:

set -- arg1 arg2 "$@"
cmd "$@"
Run Code Online (Sandbox Code Playgroud)


tha*_*guy 5

如果您有grep foo并且想要在-f之前添加foo,则可以使用grep -f foo。同样的情况适用于这里:

cmd argument1 argument2 "$@"
Run Code Online (Sandbox Code Playgroud)

  • @bt,请注意此处使用引号。这非常重要:它传递的参数必须与接收的完全一样。 (3认同)