Nowe posty

Autor Wątek: Choinka(petla for)  (Przeczytany 8648 razy)

Springfield

  • Gość
Choinka(petla for)
« dnia: 2009-06-05, 12:58:02 »
Mógłby mi ktoś poprawic ten skrypt?
Ma rysowac cos takiego:
*
**
***
****
*****

skrypt:
#! /bin/bash
read k
for ((i=1; i<=$k; i=$(($i+1))))
do
  a=1
  while [[$a -lt $i ]]
  do
  echo -n "*"
  a=$($a+1)
  done
done

bardzo proszę o szybką odpowiedź (kolosa mam za 1,5h) :)

Już poprawiłem. Moze komus sie przyda:
#! /bin/bash
read k
for (( i=1; i<=$k; i=$(($i+1)) ))
do
  a=1
  while [[$a -lt $i ]]
  do
  echo -n "*"
  a=$(($a+1))
done
echo
done

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
Choinka(petla for)
« Odpowiedź #1 dnia: 2009-06-05, 19:08:26 »
Chyba prościej użyć polecenia seq:

#! /bin/bash
read k
for i in $( seq $k ); do
  for a in $( seq $i ); do
    echo -n "*"
  done
  echo ""
done
Masz też źle to echo bez -n - powinno być w zewnętrznej pętli, a nie na końcu programu.

A do zwiększania wartości o 1 można użyć:
(($a++))