比较 shell 脚本中的文件大小

发布于 2024-12-15 08:03:59 字数 288 浏览 0 评论 0原文

我正在尝试比较 shell 脚本中两个文件的大小,但收到 test: 32: 8: Unexpected Operator 错误。

I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if test $I == $J
then
      echo $i $j >> $1.pares
fi

我使用 echo 测试 $I 和 $J 中的值,这些值是正确的,但我无法比较它们......

I'm trying to compare the size of two files in shell script but I'm getting a test: 32: 8: unexpected operator error.

I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if test $I == $J
then
      echo $i $j >> $1.pares
fi

I test the values in $I and $J using echo and the values are correct but I cant compare them...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

溺孤伤于心 2024-12-22 08:03:59

这适用于 bash

if((`stat -c%s "$file1"`==`stat -c%s "$file2"`));then
  echo "do something"
fi

this works on bash

if((`stat -c%s "$file1"`==`stat -c%s "$file2"`));then
  echo "do something"
fi
青巷忧颜 2024-12-22 08:03:59

尝试使用方括号 ([]) 和 -eq,如下所示:

I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if [ $I -eq $J ]
then
      echo $i $j >> $1.pares
fi

Try using square braces ([]) and -eq like so:

I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if [ $I -eq $J ]
then
      echo $i $j >> $1.pares
fi
玩套路吗 2024-12-22 08:03:59

尝试

I=`wc -c "$i"` # always use quoted var
J=`wc -c "$j"`
[[ "$I" == "$J" ]] && echo "$i" "$j" >> "$1".pares

始终引用变量,因为文件名可能包含空格。

尽管 BASH 对变量名不区分大小写,但对变量使用不同的(且长于一个字符的)名称会更好、更安全。

Try

I=`wc -c "$i"` # always use quoted var
J=`wc -c "$j"`
[[ "$I" == "$J" ]] && echo "$i" "$j" >> "$1".pares

Always quote variables, because you can have a file name containing a space.

Despite BASH is case insensitive with variable names, it's better and safer to use different (and longer than one char) name for variables.

Smile简单爱 2024-12-22 08:03:59

像这样的事情可能会起作用......

#/bin/bash <br>
I=`wc -c < echo $i`
J=`wc -c < echo $j`

if [ $I -eq $J ]; then

 echo $i $j >> $1.pares

fi

拥抱!

Something like this could work....

#/bin/bash <br>
I=`wc -c < echo $i`
J=`wc -c < echo $j`

if [ $I -eq $J ]; then

 echo $i $j >> $1.pares

fi

Hugs!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文