Bash 使用cat时的条件参数替换

Bash 使用cat时的条件参数替换,bash,Bash,我正在使用cat从环境变量创建文件 cat <<EOF > config environment = ${ENVIRONMENT:-dev} EOF cat没有任何操作可以执行您想要的操作。我建议在cat命令前面放置一个条件,如下所示: if [[ "${ENVIRONMENT}" =~ ^dev ]] ; then ENVIRONMENT="dev" fi cat <<EOF > config environment = ${ENVIRONMEN

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

cat <<EOF > config
environment = ${ENVIRONMENT:-dev}
EOF
cat没有任何操作可以执行您想要的操作。我建议在
cat
命令前面放置一个条件,如下所示:

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

cat <<EOF > config
environment = ${ENVIRONMENT}
EOF
如果[[“${ENVIRONMENT}”=~^dev]];然后
ENVIRONMENT=“dev”
fi
cat试试这个:

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

猫谢谢@hek2mgl,我有很多这样的东西。戴夫是一个年轻人。但是,这样就可以了,这样我就不用再重复那只猫了。非常感谢您不需要RE-here(旧版本不支持)
[[$ENVIRONMENT==dev*]
就足够了。它就像
ENVIRONMENT=${ENVIRONMENT/dev*/dev}
一样简单。如果
ENVIRONMENT
包含单词
dev
,后跟任意数量的字符,请替换为
dev