bash - 在另一个 bash 脚本中运行一个 bash 脚本并传递变量
问题描述
我有两个 bash 脚本。第二个是从第一个调用的。这是第二个名为build_with_docker.sh
:
#!/bin/bash
VERSION=$1
BUILD_ID=$2
echo "-- build/platform/build_with_docker.sh --"
echo VERSION:$VERSION
echo BUILD_ID:$BUILD_ID
# override params
if [ -z "$VERSION" ]
then
echo "Failed to pass version :("
exit 1
fi
if [ -z "$BUILD_ID" ]
then
echo "Failed to pass BUILD_ID :("
fi
SOURCEID=$(docker build -q -f - --build-arg semver=$VERSION --build-arg build_id=$BUILD_ID $GOPATH/src/myproject < $DEVOPS/build/platform/Dockerfile.build)
echo $SOURCEID
我想从第一个调用上面的脚本。这是第一个:
#!/bin/bash
VERSION=${1:-${VERSION}}
if [ -z "$VERSION" ]
then
echo "VERSION not defined in shell session, nor passed in as parameter"
exit 1
fi
if [ -z "$BUILD_ID" ]
then
BUILD_ID=$(date +%s)
echo "Setting build id to current date"
fi
# Builds, and outputs image to Docker's local image store
# example "sha256:59d19c43c86865aef8..."
DOCKER_IMAGE_ID=`$DEVOPS/build/platform/build_with_docker.sh ${VERSION} ${BUILD_ID}`
echo $DOCKER_IMAGE_ID
当我执行第一个脚本时,第二个脚本永远不会被执行并且$DOCKER_IMAGE_ID
是空的。如果我删除这两个参数${VERSION}
并${BUILD_ID}
传递给第二个脚本,那么它就可以工作。
编辑: $DEVOPS 是一个已经设置的环境变量
请指教。
谢谢
解决方案
推荐阅读
- ios - iOS10 的 UIBarButtonItem 上的 UIEdgeInsets 导致图像挤压
- python - 正则表达式从电子邮件文本 Python 中删除名称、地址、指定
- ios - 在自定义 UIPicker 类中获取 UITextfield textFieldDidEndEditing 回调
- html - 防止模态滚动
- python - keyboard.is_pressed() 在 Python 中是如何工作的?
- swift - 尝试创建一个带有标签的滚动视图
- bash - 无法使用 IFS 读取并读取
- arrays - Excel:将最近匹配的行号返回为两个值
- android - android studio 图像资产中的圆形启动器图标
- knockout.js - 对象数组的下拉选项