首页 > 解决方案 > 如何在 shell 中使用函数编写这个

问题描述

如何简化以下脚本。

a="/mappings/file_prod_name.txt"; 

if [[ ${a,,} =~ 'dev' ]]; then
ENV="dev"
echo "Environment is $ENV "

elif [[ ${a,,} =~ 'test' ]]; then
ENV="test"
echo "Environment is $ENV "

elif [[ ${a,,} =~ 'prod' ]]; then
ENV="prod"
echo "Environment is $ENV "

else echo 'Please enter existing environment file'; fi

标签: linuxshell

解决方案


更简单的代码版本可能如下所示:

a="/mappings/file_prod_name.txt"
ENV=
case ${a,,} in
  *dev*)  ENV=dev;;
  *test*) ENV=test;;
  *prod*) ENV=prod;;
esac

if [[ $ENV ]]; then
  echo "Environment is $ENV"
else
  echo "Please enter an environment file"
fi

删除重复内容可以简单地通过将内容移到作业之外来完成;它不需要函数。


推荐阅读