我们正在从Jenkinsfile调用bash脚本,该脚本评估用于运行身份验证脚本的布尔参数:
#!/bin/bash -eu
some case statements
esac
$APP_PARAM:-} && key_aliase="xyz/aaa"
some parameter set
call another shellscript
,想知道$APP_PARAM:-} && key_aliase="xyz/aaa"
是什么意思。 APP_PARAM是布尔参数,默认值为false。
答案 0 :(得分:0)
首先,这是一个错字
${APP_PARAM:-} && keyaliase="xyzzy/aaa"
结果是$APP_PARAM
扩展为要运行的程序,并且key_aliase
仅在程序成功时才设置,或者参数扩展为空字符串,由于未引用该字符串,因此变为被视为无条件成功的“空”命令。
鉴于${APP_PARAM}
和${APP_PARAM:-}
在扩展时会产生相同的结果,我假定脚本在尝试扩展未定义参数时会使用set -u
退出。后一种形式将扩展为空字符串,而不是触发退出。