set i = 1
while ($i < 5)
echo "i is $i"
@ i++
end
или
set i = 1
while (1)
echo "i is $i"
@ i++
if ($i >= 5) break
end
Эти выходные данные:
i is 1
i is 2
i is 3
i is 4
csh
в настоящее время в значительной степени вытеснен оболочками sh
-, особенно на платформе Linux (, где использование csh
никогда не было широко распространено с самого начала ). Большинство BSD также предлагаютsh
-совместимые оболочки в качестве интерактивных оболочек по умолчанию.
Если вы изучаете программирование в оболочке, рассмотрите возможность изучения оболочки sh
, если ваша работа не требует от вас изучения сценариев csh
и tcsh
(в этом случае вы можете использовать оболочку sh
, например bash
, как вашу интерактивную оболочку вне зависимости от того, с какими типами скриптов вы работаете ).
#!/bin/bash
# update status after step seconds or greater
step=5
count=0
echo "Checking for 200 status code.."
start=$(date +'%s')
sort -u "$1" | while read line; do
http_status=$(curl -I -s "https://$line" -o /dev/null -w "%{http_code}\n")
case "$http_status" in
200)
echo "$line" >> livedomains
;;
302)
echo "$line" >> redirecteddomains
;;
*)
echo "$line" >> otherdomains
esac
((count++))
now=$(date +'%s')
if [ "$start" -le "$((now - step))" ]; then
start=$now
echo "completed: $count"
fi
done
Интервал обновления установлен на 5 секунд, вы можете изменить его на 120.
Редактировать:Я передумал и использую переменную-счетчик вместо wc
.
Дополнительные изменения:
#!/bin/bash
в первую строку < $1
в последней строке (, иначе он не отсортирован)