linux - 比较倍数 vars shell linux 的最佳方法
问题描述
我有一个 Ansible 剧本,它收集一些信息,最后写入一个类似这样的文件:
VAR_A=14.12.103
VAR_B=14.12.103
VAR_C=14.12.103
VAR_D=14.12.103
VAR_E=14.12.103
VAR_F=14.12.103
VAR_G=14.12.103
VAR_H=14.12.103
然后,我使用一个 shell 脚本来比较这些值,以确保每个变量都彼此相同。
比较这些变量的最佳方法是什么?其实我这样做:
if [ "$VAR_A" = "$VAR_B" ] && [ "$VAR_B" = "$VAR_C" ] && [ "$VAR_C" = "$VAR_D" ] && [ "$VAR_D" = "$VAR_E" ] && [ "$VAR_E" = "$VAR_F" ] && [ "$VAR_F" = "$VAR_G" ] && [ "$VAR_G" = "$VAR_H" ]; then
echo "OK"
exit 0
else
echo "KO"
exit 2
fi
但我认为这不是最好的方法..
有人有另一种解决方案吗?
谢谢
解决方案
取决于您对“最佳”的定义?您在寻找运行时吗?还是清晰度?
因为您可以使用循环与VAR_A
所有其他人进行比较,如果任何比较为假,则返回KO
else OK
。
我想不出一种方法让它在 bash 中更快,但如果有任何想法,我会进行编辑。
推荐阅读
- excel - 使用 VBA 在工作表中搜索和选择字符串
- r - R Plotly - 条形与其他 xaxis 刻度重叠
- amazon-web-services - 具有 Spigot 功能的 Pyspark 代码在 AWS Glue 中不起作用
- drupal-8 - 允许将禁用的块插入嵌套的自定义块中
- amazon-web-services - 如何在 gitlab CI/CD 中使用 zappa 将应用程序部署到 AWS Lambda?
- image-processing - 如何让 Tesseract 将 o 识别为 o 而不是零?
- java - 优化响应时间 [ 1 findAll() 与循环内的多个 findByXYZ()]
- javafx - 如何使用控制器在 fxml 上创建滚动窗格
- java - 我想将 sata 从活动发送到片段。但我的应用程序没有在 frameLayout 中显示数据
- java - 无法从片段开始活动,得到 IllegalArgumentException