我用命令确实经常:如何用args创建shell别名?
ack searchexpre -l --print0 | xargs -0 -n 1 sed -i -e sedexpression
我想创建这样一个别名:
searchandreplace searchexpre sedexpression
我可怎么办呢?
我用命令确实经常:如何用args创建shell别名?
ack searchexpre -l --print0 | xargs -0 -n 1 sed -i -e sedexpression
我想创建这样一个别名:
searchandreplace searchexpre sedexpression
我可怎么办呢?
与别名经验法则是,如果你要问,你应该用一个函数:
searchandreplace() {
ack "$1" -l --print0 | xargs -0 -n 1 sed -i -e "$2"
}
现在,您可以拨打searchandreplace searchexpre sedexpression
有什么办法给参数命名?像doint searchandreplace(arg1,arg2){....}? – Fractale
不,'sh'和'bash'不支持命名参数。您可以将'$ 1'和'$ 2'分配给您想要的任何名称的变量 –
BTW - 请标记庆典*或* zsh *或* sh,但不能同时使用两个或三个。它们是不同的shell,彼此不兼容(除非bash几乎是POSIX sh的超集,但是因为其不合规的'echo'实现),而在这种特殊情况下,有一个适用于所有(1)并非总是如此,(2)多余的标记意味着有人需要测试多个shell中的每个答案以评估答案的正确性。 –
可能重复的[使一个Bash别名需要一个参数?](https://stackoverflow.com/questions/7131670/make-a-bash-alias-that-takes-a-parameter) – codeforester
你应该也考虑使用ag,而不是ack,在我的测试中速度快了10倍; https://github.com/ggreer/the_silver_searcher –