可以说我有一个bash命令,其中包含几个选项和我感兴趣的变量(例如,文件名):
my_cmd option1 option2 filename
我创建了一个别名:
alias my_cmd_12="my_cmd option1 option2"
这使我可以删除所有选项的键入。但是,在我感兴趣的变量之后有一些标志(例如,文件名):
my_cmd option1 option2 filename --flag1
如何创建一个带有所有选项标志的别名:
my_alias filename
相当于
my_cmd option1 option2 filename --flag1
您不能使用别名来执行此操作。Alias的工作原理是用另一个字符串替换字符串。定义此别名
alias my_cmd_12="my_cmd option1 option2"
my_cmd_12 filename --flag1
将扩展到
my_cmd option1 option2 filename --flag1
但是您要调用my_alias filename
以获得相同的结果。无法my_alias
用其他字符串替换,因此--flag1
出现在末尾。
但是,一个功能应该起作用:
my_function() { my_cmd option1 option2 "$1" --flag1; }
请注意,这只是针对您的示例量身定制的最小解决方案。通常"$@"
,根据实际需要,可以使用更多的位置参数或条件语句等。函数比别名更灵活。
此处有更多信息:在Bash中,何时使用别名,何时编写脚本以及何时编写函数?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句