我安装了一个名为的程序zeus。它允许我运行以下命令:
zeus parallel_rspec spec/
Run Code Online (Sandbox Code Playgroud)
哪里parallel_rspec是由zeus运行的命令,是命令spec/所必需的目录parallel_rspec。
我在自己的别名.profile:
alias rsp='zeus parallel_rspec'
Run Code Online (Sandbox Code Playgroud)
因此,我可以运行以下命令:
rsp spec/ # => equal to `zeus parallel_rspec spec/`
Run Code Online (Sandbox Code Playgroud)
但是spec/目录是常见的(95%的情况)。默认情况下,如何使我的rsp别名通过spec/文件夹参数(如果未传递其他名称,如spec/blablabla)?
Bash具有变量默认值的语法:
${VARNAME:-default}
Run Code Online (Sandbox Code Playgroud)
因此,在您的情况下,您需要使用如下所示的函数:
rsp() { zeus parallel_rspec "${1:-spec/}" }
Run Code Online (Sandbox Code Playgroud)
或者,如果您想传递更多选择,以防万一:
rsp() {
folder="${1:-spec/}"
shift 1
zeus parallel_rspec "$folder" "$@"
}
Run Code Online (Sandbox Code Playgroud)
您应该改用函数:
function rsp {
[ -z "$1" ] && zeus parallel_rspec spec/ || zeus parallel_rspec "$1"
}
Run Code Online (Sandbox Code Playgroud)
您可以将其添加到您的个人资料或 bashrc。如果您不向函数提供参数,则该函数$1将为空,因此它将/spec用作路径,否则它将使用该参数