我现在正在使用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不会尝试匹配确切的命令但是最短的匹配命令(我猜)?
答案 0 :(得分:0)
感谢大家的评论。现在我可以将别名设置为 cppgen 。我没有改变任何事情。 不知道发生了什么......也许我在发布StackOverflow之前需要更多咖啡。