저는 bash
스크립팅을 배우려는 초보자인데 이 문제를 해결하는 방법을 모르겠습니다.
./elleviemme.sh: line 7: unexpected token `|', conditional binary operator expected
./elleviemme.sh: line 7: syntax error near `|'
./elleviemme.sh: line 7: `if [[ lsblk | grep -qwEo ^$dvin ]]'
답변1
나는 당신이 쉘 변수의 값을 확장된 정규 표현식으로 사용하려고 하며 dvin
그것이 명령 출력의 행 시작 부분과 일치하는지 확인하고 싶다고 가정합니다 lsblk
.
이렇게 하려면 다음을 사용하지 마세요 [[ ... ]]
.
if lsblk | grep -q -E -w "^$dvin"; then
# whatever code here
fi
또한 이는 -q
"조용함", 즉 출력이 없음을 의미하며 사용은 와 ("일치만") -q
필요하지 않음을 의미합니다 .-o
grep
[[ ... ]]
일부 유틸리티의 종료 상태를 확인하려는 경우에는 이 기능을 사용하지 않습니다. 여기서는 일치 항목이 발견되었는지 알려주는 lsblk
+ 파이프가 어떻게 종료되었는지 확인하고 싶습니다 .grep
grep