我正在尝试复制这个答案的结果线但使用不同的命令。
我尝试复制我的答案,但加载终端时 zsh 中不断出现错误
/Users/k/.zshrc:155: defining function based on alias `convert'
/Users/k/.zshrc:155: parse error near `()'
这是我尝试为其创建别名的命令
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' SOME_FILE_NAME.pem
我想将其别名为
convert SOME_FILE_NAME.pem
这是我在 zshrc 中尝试过的
conv() {
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "$@"
}
答案1
要为此创建别名,您需要执行以下操作:
alias conv='awk '\''NF {sub(/\r/, ""); printf "%s\\n",$0;}'\'
创建函数:
conv() awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "$@"
但是,如果您alias
在运行该conv
函数定义命令之前已经定义了,则其中的conv
将会扩展为别名定义,从而导致zsh
尝试解释如下内容:
awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}'() awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' "$@"
导致您所看到的错误。
您必须选择:使用别名或函数,而不是两者都使用。
要删除别名(这样您就可以定义一个函数):
unalias conv