현재 다음 결과를 생성하는 스크립트가 있습니다.
...
Processing !
Processing $6$vxVOJhOX$U2flG.WASP1fEsqNy1Q0S9YROgdNJi9TTC8Gn74Al4w03unxr4qtHeaeRl8sWsGLG4Om5WbUJVsqNaCD4t4tG.
Processing !
Processing $6$ehmLTmoj$VP72RBNibmjwngQxMrW0kiyax/wJHiV0ugv/8J2RJnCwNxTIBLGJ.A4t5ryZv6lQTyheoA6N0VianZC5QI7Rp1
Processing !
Processing !
...
.만 사용하여 항목을 필터링하고 싶습니다 !
.
탈출 여부에 관계없이 다음을 시도하고 있습니다 \!
.
while read -r line ; do
if ! [ \$line = \! ]; then
echo "Processing $line"
fi
done
변수에 단일이 포함되어 있는지 확인하는 방법은 무엇입니까 !
?
답변1
- 예제 출력 줄에 더 많은 텍스트("처리 중")가 있고
- 달러 기호를 이스케이프 처리하여
\$line
변수 확장을 방지했습니다.
노력하다:
while read -r line; do
if ! [ "$line" = "Processing !" ]; then
echo processing line "$line";
fi
done
또는 귀하의 입력이만약에예제 스크립트를 살펴보고 $line
다음을 비교하십시오 \!
.
while read -r line; do
if ! [ "$line" = \! ]; then
echo processing line "$line";
fi
done
아니면 좀 더 직접적으로:
while read -r line; do
if [ "$line" != \! ]; then
echo processing line "$line";
fi
done