在 Unix / Bash 中,“xargs -p”是在运行任何命令之前提示确认的好方法吗?

nop*_*ole 5 unix bash shell

我已询问如何在问题中使任何命令“执行前询问是/否”

在 Bash 中,如何将“Are you certain [Y/n]”添加到任何命令或别名中?

似乎对于命令

hg Push ssh://用户名@www.example.com//somepath/morepath

我也可以这样做

echo ssh://用户名@www.example.com//somepath/morepath | xargs -p hg 推

-p就是能解决问题的人。这将被设置为别名,例如hgpushrepo. 这是一个好方法,有什么陷阱,或者有更好的替代方案吗?我希望使用标准 Unix/Bash 的东西,而不是编写脚本来完成它。

Pau*_*ce. 3

使用别名的缺点是它不接受参数。如果您想概括该hg命令,以便可以将其与任何用户名、主机名或路径一起使用,则必须使用脚本或函数。

顺便说一句,使用脚本“标准 Unix/Bash”。简单的脚本或函数与别名一样简单(实际上更简单,因为功能和多功能性增强)。别名对于非常短、极其简单的命令快捷方式很有用。它们经常用于默认启用选项(例如alias ls='ls --color=auto')。

对于经常使用且不需要参数的不变命令(除了那些可以附加在末尾的命令),别名是完全可以的。xargs按照你展示的方式使用并没有什么问题。这有点矫枉过正,而且是对外部可执行文件的不必要的调用,但在这种情况下这应该不重要。