使用cat时的条件参数替换

时间:2016-01-05 20:46:25

标签: bash

我使用cat从环境变量创建文件。

cat <<EOF > config
environment = ${ENVIRONMENT:-dev}
EOF

我需要dev,即使它是developmentdevelop。我无法修剪它,因为它有其他可能的值,如qademostaging等。

请注意:在我的环境中,我不能使用if语句。它用在Jenkins Execute Shell中,我有一个参数化构建,使用if会要求我重复上面的cat,多次

任何简单的方式伙计..

的问候, 单

2 个答案:

答案 0 :(得分:2)

没有parameter substitution操作可以执行您想要的操作。我建议在cat命令前放置一个条件,如下所示:

if [[ "${ENVIRONMENT}" =~ ^dev ]] ; then
    ENVIRONMENT="dev"
fi

cat <<EOF > config
environment = ${ENVIRONMENT}
EOF

答案 1 :(得分:1)

试试这个:

cat <<EOF > config
  environment = $([[ "${ENVIRONMENT}" =~ ^dev ]] && ENVIRONMENT=dev && echo $ENVIRONMENT)
EOF