bash - 来自嵌套 for 的字符串比较总是返回 false
问题描述
主要问题是我尝试解析 ls 来模拟“比较目录”,但是当我这样做时,因为我使用嵌套 fors 我无法正确比较它的结果,因为比较两个文件名/字符串,即使它们是相同的它总是返回 false
我尝试擦除白色字符但没有结果。
var1=$(ls -l $1 | grep -v ^d | tail -n +2 | tr -s " "| cut -d " " -f 9)
var2=$(ls -l $2 | grep -v ^d | tail -n +2 | tr -s " "| cut -d " " -f 9)
for i in $var1 ; do
i=$(printf "$i" | tr -d '[:space:]')
flag=0
var3=$(ls -l $1 | grep -v ^d | tail -n +2 | tr -s " " | grep $i | cut -d " " -f 5)
for j in $var2 ; do
j=$(printf $j | tr -d '[:space:]')
var4=$(ls -l $2 | grep -v ^d | tail -n +2 | tr -s " " | grep $j | cut -d " " -f 5)
if [ "$i" == "$j" ] ; then
if [ "$var3" != "$var4" ] ; then
flag=1
fi
else
flag=1
fi
done
if [ $flag -eq 1 ] ; then
printf "$i file does not exist on the $2 catalog\n"
printf "It 's size is :$var3 \n"
let Sum=$Sum+$var3
fi
done
解决方案
推荐阅读
- asp.net-core - ASP.NET Core DI 直接访问容器
- security - 保护 .NET Core MVC 网站免受暴力登录尝试(通过内置方式)
- html - 我的标题在按钮悬停效果时晃动
- javascript - JavaScript 动态同步函数队列
- sql-server - 在 If 语句中使用值后从存储过程中返回一个值
- r - 文件中出现错误(文件,“rt”):无法打开连接
- monitoring - Geneos 文件系统监控 .snapshot
- javascript - 带有 Typescript TS2604 错误的动态导入 ES6 React 组件?
- entity - 是否可以在 Visio 中使用类似 XL 表的结构创建 ERD?我需要在每个属性旁边显示列(单选框)
- php - 来自 MySQL 数据库的数据显示在文本字段中,但不通过 php 显示在文本区域中