我想用bash编程做这样的事情
for file_x in file1, file2, file3, etc...
for file_y in file1, file2, file3, etc...
if file_y != file_x
do something
任何提示如何去做?
答案 0 :(得分:0)
#!/bin/bash
for file_x in "file1" "file2" "file3"
do
for file_y in "file1" "file2" "file3"
do
if cmp -q "$file_y" "$file_x"
then
echo "$file_y $file_x are equal"
else
echo "$file_y $file_x are not equal"
fi
done
done
答案 1 :(得分:0)
如果你正在进行NxN比较,那么仅在内循环中操作列表的尾部是有意义的。像
这样的东西#!/bin/bash
files=(foo bar baz quux)
for ((i=0; i<${#files[@]}-1; i++)); do
for ((j=i+1; j<${#files[@]}; j++)); do
maybe=""
cmp -s "${files[$i]}" "${files[$j]}" || maybe=" not"
echo "${files[$i]} and ${files[$j]} are$maybe equal"
done
done