我的Bash命令语法是的吗
command && break
对的
对
的退出状态
if
是
0
,当没有
else
块和条件(如果为false),或者整个的退出状态
如果
块等于最后执行的命令的退出状态。因此,如果条件为假,那么
&& break
将断开,如果条件为真,则
bash <(curl
将执行并将
&&打破
取决于退出状态。
我会将其重构为
bash <(curl..... && break
。我也只是
for i in $(seq 5)
或
for ((i=0;i<5;++i))
而不是
while
.我觉得没有理由这么做
if [ "$BRANCH_NAME" == "master"...
每个循环。也更喜欢
如果
而不是
&&
。使用shellcheck检查您的脚本。此外,您可以使用
$PWD
而不是
$(pwd)
.
#!/bin/bash
set -ex
. "${0%/*}/common.sh"
. activate "$PYENV_HOME"
if [[ "$BRANCH_NAME" == "master" || "$BRANCH_NAME" == "main" ]]; then
DETECT_PROJECT_VERSION_NAME="$BRANCH_NAME"
DETECT_PROJECT_VERSION_PHASE="PRERELEASE"
for ((i=0;i<5;++i)); do
if
bash <(curl -s https://artifactory.dev.com/artifactory/blackduck-detect/detect7.sh) \
--blackduck.url=https://com_name.app.blackduck.com \
--blackduck.api.token="${BLACKDUCK_API_TOKEN}" \
--detect.project.name="${DETECT_PROJECT_NAME}" \
--detect.project.version.name="${DETECT_PROJECT_VERSION_NAME}" \
--detect.project.version.phase="${DETECT_PROJECT_VERSION_PHASE}" \
--detect.code.location.name="${DETECT_PROJECT_NAME}_${BRANCH_NAME}" \
--detect.source.path="$PWD" \
--detect.excluded.directories=/tests/
then
break
fi
done
fi
所以可以简单地将“$BRANCH_NAME”更改为我当地公关分支机构的名称吗?
它只是一个变量,设置并导出。
BRANCH_NAME=stuff ./yourscript
但是我可以用我的全部代码代替命令吗?
一般来说是的。研究bash中的命令退出状态