이러한 최소 작업이 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
코드가 작동하도록 하려면 어떻게 해야 합니까?
답변1
논리 외에도 다음과 같은 구문 오류가 있습니다.
- 그렇지
file_list
않습니다files_list
. - 배열 요소로 확장하려면 "${file_list[@]}"를 사용해야 합니다.
노력하다주택 검사출판하기 전에.
셸에서 이 작업을 수행해야 하는 경우 다음을 시도해 보세요.
file_list1=(a.sh b.sh c.sh)
file_list2=(b.sh c.sh d.sh)
for i in "${file_list1[@]}"; do
repeated_in_A=0
for k in "${file_list2[@]}"; do
if [[ $k == $i ]]; then
repeated_in_A=1
break
fi
done
((repeated_in_A)) || echo "$k"
done