shell中命令的匹配策略是什么,比如bash和zsh?

时间:2015-03-08 06:30:04

标签: linux bash shell zshrc

我现在正在使用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不会尝试匹配确切的命令但是最短的匹配命令(我猜)?

1 个答案:

答案 0 :(得分:0)

感谢大家的评论。现在我可以将别名设置为 cppgen 。我没有改变任何事情。 不知道发生了什么......也许我在发布StackOverflow之前需要更多咖啡。