-:} &&在bash脚本中的含义是什么

时间:2018-09-11 15:57:08

标签: bash syntax

我们正在从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。

1 个答案:

答案 0 :(得分:0)

首先,这是一个错字

${APP_PARAM:-} && keyaliase="xyzzy/aaa"

结果是$APP_PARAM扩展为要运行的程序,并且key_aliase仅在程序成功时才设置,或者参数扩展为空字符串,由于未引用该字符串,因此变为被视为无条件成功的“空”命令。

鉴于${APP_PARAM}${APP_PARAM:-}在扩展时会产生相同的结果,我假定脚本在尝试扩展未定义参数时会使用set -u退出。后一种形式将扩展为空字符串,而不是触发退出。