我试图在ZSH中创建函数和别名,使参数处理更容易阅读。
因此,我想创建像下面的例子一样的东西:
#!/bin/zsh
myCustomFunction(){
local numberOfParameters=$(count-parameters)
local lastParameter=$(get-parameter $numberOfParameters)
echo "Number of parameters: $numberOfParameters"
echo "Last parameter is: $lastParameter"
}
其中count-parameters
定义如下:
#!/bin/zsh
alias count-parameters='echo "$#"
如何实现get-parameter
?我一直在尝试使用"$@"
,就像here中建议的那样,但似乎不起作用。
我想要的结果是,给定一个输入,例如:
myCustomFunction.sh "First param" "Second param" "Third param"
输出将是:
Number of parameters: 3
Last parameter: Third param
2条答案
按热度按时间1zmg4dgp1#
您可以通过将别名作为执行实际工作的函数的瘦 Package 器来实现这一点。
下面有一个zsh的shebang,但也是为了与bash一起使用而编写的。
epggiuax2#
经过反复试验,我终于达到了预期的结果.
我是这么做的。
1.计数参数别名
对于get-parameter,我必须执行多个操作(黑客的方式,但它的工作)
运行命令时:
达到了预期的结果。
编辑:更新了代码,以解决输入参数中包含新行的可能性。现在使用NUL字符来区分参数,正如注解中所建议的那样。