具有相同参数的bash替代命令

时间:2015-04-21 18:10:44

标签: bash shell

我想运行此命令:

cmd -arg1 foo -arg2 bar

但是,如果cmd-better可用,我更喜欢用相同的参数执行它:

cmd-better -arg1 foo -arg2 bar

最后,我的问题是,可以只在一行中使用它,例如:

(cmd-better || cmd) -arg1 foo -arg2 bar

(表示使用这些参数执行cmd-better(如果可用),否则使用相同的参数执行cmd

1 个答案:

答案 0 :(得分:2)

您可以这样做:

"$(command -v cmd-better cmd | head -n 1)" -arg1 foo -arg2 bar

但我不推荐它。

我提前完成并将您想要的命令存储在变量

类似的东西:

if ! cmd=$(command -v cmd-better); then
    cmd=$(command -v cmd)
fi

"$cmd" -arg1 foo -arg2 bar