Если ваши данные всегда в первой строке и в формате user@domain, вы можете сделать это:
Извлеките первую строку и используйте расширение параметров оболочки:
firstline=$(head -n1 file)
user=${firstline%@*}
domain=${firstline##*@}
Еще немного расширения триггера @saga
read -p "Semi Circle radius tolerance: " n w
R2=$((n*n))
for(( x=-$n ; x<=$n ; x+=2 )); do
for ((y=-$n ; y<=$n ; y++)); do
d=$((x*x + y*y))
if [ $((d-R2)) -lt $w ] && [ $((R2-d)) -lt $w ] ; then echo -n "*"; else echo -n " "; fi
done
echo
done
Вывод для радиуса 20 и допуска 10
*******
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
*******
Для ощущения полного полукруга
read -p "Semi Circle radius tolerance: " n w
R2=$((n*n))
echo
for(( x=0 ; x>=-$n ; x-=2 )); do
for ((y=-$n ; y<=$n ; y++)); do
d=$((x*x + y*y))
if [ $((d-R2)) -lt $w ] && [ $((R2-d)) -lt $w ] || [ $x -eq 0 ]; then echo -n "*"; else echo -n " "; fi
done
echo
done
echo
С радиусом 20 и допуском 12
*****************************************
* *
* *
* *
* *
* *
* *
* *
*******
редактировать
Чисто для развлечения, добавлено поле, чтобы избежать отсечения, разумно переименованы переменные и уточнен тест на устойчивость к радиусу до одного условия.
read -p "Circle enter: radius tolerance.... " r t
r2=$((r*r))
t2=$((t*t))
box=$((r+t/10))
for(( y=-$box ; y<=$box ; y+=2 )); do
for ((x=-$box ; x<=$box ; x++)); do
d=$((x*x + y*y-r2))
d2=$((d*d))
if [ $d2 -lt $t2 ]; then echo -n "*"; else echo -n " "; fi
done
echo
done
read -p "Semi Circle radius: " n
R2=$((n*n))
for(( i=1 ; i<=5+$n ; i++ ))
do
for(( j=2*$n ; j>=1 ; j-- ))
do
D=$((i*i + (j-n)*(j-n)))
if [ $D -lt $R2 ]; then echo -n '#' ;>
done
echo
done