我有一个脚本,
PREFIX=${PREFIX:-'D1'}
echo "PREFIX is $PREFIX"
docker run -e PREFIX=$PREFIX -it tci-deployer /bin/bash
我通过获取PREFIX参数
来运行此脚本export PREFIX=demo
我的问题是,我正在运行另一个脚本,它将上述脚本复制到另一个位置并尝试运行它。运行后,PREFIX值设置为Docker容器内的D1而不是源代码。 如何在将其复制到另一个位置之前使另一个脚本评估该值,以便在docker容器中获得正确的值?
答案 0 :(得分:0)
我相信envsubst工具可以满足您的需求。它将使用当前shell中的值替换$ PREFIX的任何实例。它不会改变" PREFIX = $ {PREFIX: - ' D1'}"但是,这可以通过改变变量的初始化方式来处理(使用if语句而不是更紧凑的形式。例如文件foo包含:
if [ -n "$PREFIX" ]
then
PREFIX=${PREFIX:-D1}
fi
echo PREFIX is $PREFIX
shell中的和PREFIX = B,命令
cat foo | envsubst >foo1
文件foo1将包含:
if [ -n "B" ]
then
PREFIX=${PREFIX:-D1}
fi
echo PREFIX is B