[英]what is the matching strategy of commands in shell like bash and zsh?
我现在使用的是zsh shell,但我假设其匹配的命令策略与bash相同。 这是东西:
我要创建一个别名命令,该命令使用模板文件创建一个新的.cpp文件,并将第一个参数用作新文件名。 我还为Java模板编写了一个别名。
这是中的功能。 zshrc :
function cppgen()
{
cp ~/Documents/Templates/cpp_template.cpp ./$1.cpp
vim ./$1.cpp
}
function javagen()
{
cp ~/Documents/Templates/java_template.java ./$1.java
vim ./$1.java
}
奇怪的是,只有javagen别名有效。 当我使用cppgen时 ,shell会输出:
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
经过一段时间的努力,我终于意识到shell将我的cppgen命令视为cp 。 将别名从cppgen更改为cgen后 ,一切正常。
那么,这是否意味着shell不会尝试匹配确切的命令,而是最短的匹配命令(我想)?
谢谢大家的评论。 现在我可以将别名设置为cppgen 。 我什么都没改变。 不知道发生了什么...在StackOverflow上发布之前,也许我需要更多的咖啡。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.