linux - 如何在 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
解决方案
更简单的代码版本可能如下所示:
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
删除重复内容可以简单地通过将内容移到作业之外来完成;它不需要函数。
推荐阅读
- azure - Azure 应用程序网关 - 未知错误。请再试一次
- react-native - 如何从嵌套堆栈导航器导航到选项卡导航器中的特定页面
- cordova - 科尔多瓦文件系统覆盖字符串
- r - R 中的 XGBoost 解释器 - 如何对特征贡献实施约束?
- python-3.x - Pygmo 2:控制内存分配
- angular - 我应该怎么做才能使用 grails 3 和 Angular 创建一个 Web 应用程序?
- java - Spring Boot Index-Page 在 Docker 容器中返回 403
- ios - UICollectionView shouldShowMenuForItemAt 未调用
- android - MPAndroidChart:自定义 Y 轴上的毕业步骤
- visual-studio-code - 有没有办法用 vscode.workspace.createFileSystemWatcher 观察多种文件类型