을 발견 나는 떠들썩한 파티에서 다음 루프가 :배쉬 검사
sudo iwlist wlan0 scan | grep somewifi | while read -r line; do
거기에 "somewifi"모든 와이파이 확인하고 뭔가. 은 grep somewifi 찾을 수 없습니다 즉 비우 나오면 나는 프로그램을 종료하려면 어떻게
을 발견 나는 떠들썩한 파티에서 다음 루프가 :배쉬 검사
sudo iwlist wlan0 scan | grep somewifi | while read -r line; do
거기에 "somewifi"모든 와이파이 확인하고 뭔가. 은 grep somewifi 찾을 수 없습니다 즉 비우 나오면 나는 프로그램을 종료하려면 어떻게
#!/usr/bin/env bash
# ^^^^- NOT /bin/sh
target=somewifi
found=0
while read -r line; do
if [[ $line = *"$target"* ]]; then
echo "Doing something with $line"
found=1
fi
done < <(sudo iwlist wlan0 scan)
if ((found == 0)); then
echo "$target not found" >&2
exit 1
fi
우리가 여기서하고있는 생성하는 것처럼 (주 쉘이 아닌 서브 쉘에서 while
루프를 실행하여 BashFAQ #24을 피할 수있다 while read
루프로 파이핑). 이렇게하면 종료 된 후에도 계속 유지되는 루프 내부의 변수를 설정할 수 있습니다.
사실, 일치하는지 찾지 못한 특정 행을 처리하지 않고 실제로 존재하는지 확인하고 싶다면'sudo iwlist wlan0 scan | grep -q scanwifi || 출구 1 '로 충분합니다. –