\$var가 \!가 아닌 경우

\$var가 \!가 아닌 경우

현재 다음 결과를 생성하는 스크립트가 있습니다.

...
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

  1. 예제 출력 줄에 더 많은 텍스트("처리 중")가 있고
  2. 달러 기호를 이스케이프 처리하여 \$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

관련 정보