Спасибо всем за помощь. Задача немного модифицировалась.
Поэкспериментировав с более лёгкими версиями скриптов я решил создать скрипт, который будет сравнивать файлы по содержанию в двух каталогах. Сами каталоги будут передаваться скрипту в качестве параметров. Если (по содержанию!!!) файлы в каталогах будут равны, то имена этих файлов надо записать в выходной файл.
Вот текущая версия скрипта. Он выводит в файл else-ветвь.
#!/bin/bash
dir1=$1
dir2=$2
i=0
truncate -s 0 equal_files.txt
files1=`ls $1`
files2=`ls $2`
for file1 in `ls $1`
do
if [ -f $(file1) ]
then
for file2 in `ls $2`
do
if [ -f $(file2) ]
then
i=$((i+1))
#if [ cmp $file1 $file2 ]
are_equal=`diff $file1 $file2`
#echo $are_equal
if [ $are_equal -eq 0 ]
then
echo $i $file1 $file2 "are equal"
echo $i $file1 $file2 "are equal" >> equal_files.txt
else
echo $i $file1 $file2 "are not equal"
echo $i $file1 $file2 "are not equal" >> equal_files.txt
fi
fi
done
fi
done
Проблема в блоке проверки условия на тождественность файлов. Я уже все варианты пробовал - и с cmp и с diff. Не могу сделать корректно проверку на равенство файлов. При любых двух файлах условие получается ложным. Просьба не пинать ногами. Помогите, пожалуйста, исправить ...