假设这样一个最小的任务是选择 B 中的元素而不是 A 中的元素
file_list1=(a.sh b.sh c.sh)
file_list2=(b.sh c.sh d.sh)
for i in files_list1; do
for k in files_list2; do
if [[ $k in $(echo $i) ]]; then
echo
else
echo $k
fi
done
done
它报告错误:
$ bash compare.sh
compare.sh: line 5: conditional binary operator expected
compare.sh: line 5: syntax error near `in'
compare.sh: line 5: ` if [[ $k in $(echo $i) ]]; then'
如果不适用in
,如何使代码正常工作?
除了逻辑之外,您还有以下语法错误:
file_list
,不是files_list
。在发布之前尝试Shellcheck。
如果您必须在 shell 中执行此操作,请尝试: