Добавьте следующую строку между fi
и первым done
:
seen+="$input\|"
Затем, после последнего done
, добавьте следующие строки:
seen=$(printf '%s' "$seen" | sed -e 's/\\|$//')
sed -i -e "/^\($seen\)$/d" "$1"
Это создает регулярное выражение, содержащее все домены, уже просмотренные и обработанные во входном файле («$ 1»), а затем удаляет их все из этого файла.
Если ваша версия sed
не поддерживает параметр -i
( - на месте
), вы можете сделать это с помощью временного файла. вместо этого:
tf=$(mktemp)
sed -e "/^\($seen\)$/d" "$1" > "$tf" && mv -f "$tf" "$1" || rm -f "$tf"
вот более простая, более читаемая и поддерживаемая версия вашего скрипта:
#!/bin/bash
DOMAINS='.com .co' # simple, space-separated list of domain suffixes
while read input; do
for d in $DOMAINS; do
MATCH=$(whois "$input$d" | grep -oPa '^.*\b(Creation Date)\b.*$')
if [ $? ] ; then regavail="registered" ; else regavail="available" ; fi
# what's the `tr` for below? is it really needed?
# Is $MATCH really going to have more then one line in it?
out=$(printf '%s\t%s' "$(date +%y/%m/%d_%H:%M:%S)" "$MATCH" | tr '\n' '\t')
printf '%s\t%s\t%s\n' "$input$d" "$regavail" "$out" |& tee --append "output/$regavail.txt"
seen+="$input\|"
done
done < "$1"
seen=$(printf '%s' "$seen" | sed -e 's/\\|$//')
sed -i -e "/^\($seen\)$/d" "$1"
Я не использую Cinnamon, но это должно сработать, чтобы отключить lightdm и включить gdm:
1 )Во время загрузки нажмите ctl -alt -F2, что переведет вас в интерфейс командной строки -перед активацией интерфейса X windows.
2 )Вход в систему соответствующим образом.
3 )sudo systemctl lightdm остановить
3.5 )Состояние sudo systemctl lightdm (теперь должно быть неактивным)
4 )запуск sudo systemctl gdm
4.5 )Состояние sudo systemctl gdm (теперь должно быть активным)
5 )перезагрузка sudo