我想运行此命令:
cmd -arg1 foo -arg2 bar
但是,如果cmd-better
可用,我更喜欢用相同的参数执行它:
cmd-better -arg1 foo -arg2 bar
最后,我的问题是,可以只在一行中使用它,例如:
(cmd-better || cmd) -arg1 foo -arg2 bar
(表示使用这些参数执行cmd-better
(如果可用),否则使用相同的参数执行cmd
。
答案 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