![누락된 ']' 아무런 문제도 발견하지 못했지만 이 문제가 표시되었습니다.](https://linux55.com/image/130423/%EB%88%84%EB%9D%BD%EB%90%9C%20'%5D'%20%EC%95%84%EB%AC%B4%EB%9F%B0%20%EB%AC%B8%EC%A0%9C%EB%8F%84%20%EB%B0%9C%EA%B2%AC%ED%95%98%EC%A7%80%20%EB%AA%BB%ED%96%88%EC%A7%80%EB%A7%8C%20%EC%9D%B4%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%ED%91%9C%EC%8B%9C%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
나는 다음 스크립트를 작성했습니다.
#!/bin/bash
if [ $# -eq 0 ]
then
read fichier1
read fichier2
read fichier3
if [ -rf "fichier1" && -wf "fichier3" ] || [ -rf "fichier2" && -wf "fichier3" ]
then
echo "Vrai"
else
echo "FAUX"
fi
else
if [ -rf "$1" && -wf "$3" ] || [ -rf "$2" && -wf "$3" ]
then
echo "Vrai"
else
echo "FAUX"
fi
fi
실행할 수 없습니다. 오류가 있습니다."잃어버린']'"생산.
답변1
코드에 최소한 세 가지 결함이 있습니다.
[ ... && ... ]
로 작성해야 합니다[ ... ] && [ ... ]
.-rf
-wf
유효한 연산자 도 아닙니다. 무엇을 달성하고 싶나요?"$fichierN"
7행에서는 대신 쓸 수도 있습니다"fichierN"
.
답변2
의견에서 Ralph Ronquist를 사용한다고 언급했듯이 문제는 &&
테스트 표현식에서 사용하고 있다는 것입니다 [
. 양식에서 코드를 편집 if [ -f "fichier1" ] && [ -r "fichier1" ] && [ -w "fichier3" ] ...
하면 원하는 내용에 더 가까워질 것입니다. 테스트를 분리했다는 점에 유의하세요. 이렇게 결합하면 테스트가 실패하게 됩니다 -rf
. 테스트를 별도의 테스트로 분리해야 합니다.