Gå til innhold

[Løst] linux, hvordan skrive ut 5 A'er.. BASH script


Kj3tll

Anbefalte innlegg

Hei, jeg har sittet med dette nokså lenge nå.. forstår alle andre oppgavene jeg har i hjemmeoppgaven, men ikke denne..

 

 

Oppgave: 1a.

Lag et program som starter med setningene:
TEGN=''A''
ANTALL=5 

og som deretter bruker disse variablene til å skrive ut 5 A'er på samme linje.

 

Senere i oppgaven skal jeg modifiser programmet slik at det spør bruker etter tegnet og antall. Sjekk at det virker.. Det forstår jeg hvordan jeg gjør. Men jeg er usikker på hvordan jeg skal bygge opp oppgave 1a. Det er det enkleste, men jeg skjønner det ikke :S derfor jeg poster her.

 

Programmet skal jo funke slik:

 

Antall = 5

tegn = A

resultat= AAAAA

 
_________________________________________________
redigert inn 23:47:
 
lærermål for ukens leksjon:
  • Kjenne read-kommandoen og bruken av den.
  • Forstå det generelle prinsippet for løkker
  • Kjenne syntaksen for while- og until-løkke i bash, og beherske løkke-programmering i praksis
  • Kunne bruke break og continue-kommandoene
  • Beherske innlesing fra fil med read og løkke
Endret av Kj3tll
Lenke til kommentar
Videoannonse
Annonse

Hei

 

Du kan iterere $ANTALL ganger, f.eks. ved å bruke en for-løkke, og deretter skrive ut gitt tegn. 

for((i=0;i<$ANTALL;i++))
do

# Dette utføres $ANTALL ganger.

done

- Geir 

 

Takker for svar :) Vi har ikke lært å bruke for-løkke enda:s  Men jeg brukte until løkken. Det jeg klør meg i hodet nå er hvordan jeg skal få dette inn på 1 linje og ikke 5 linjer i terminal vinduet...

 

 

#!/bin/bash
 
tegn="A"
antall=5
 
 
count=1
until [[ $count -gt $antall ]] ; do
count=$((count + 1))
echo $tegn
done
 
Terminalvindu:
 
user@ubunto:~$ oppg_1
A
A
A
A
A

 

Lenke til kommentar

echo -n skal fikse biffen. Da skipper den newline på slutten. 

Se $ man echo 

 

Hva nivå er dette? VGS?

 

Det er høyskole nivå  ;)

 

ja.. skulle tro echo -n gjorde jobben.. men får bare:

 

user@ubuntu:~/bin$ oppg_1
AAAAAuser@ubuntu:~/bin$ 
 
Meninga er jo at jeg får AAAAA på ei linje under på én linje og ikke før user... eller på 5 linjer :p
__________________________

 

#!/bin/bash
 
tegn="A"
antall=5
 
 
count=1
until [[ $count -gt $antall ]] ; do
count=$((count + 1))
echo -n $tegn
done
 
___________________
 
Når jeg bruker echo...read så får jeg ut alt på 1 linje
 
#!/bin/bash
 
tegn="A"
antall=5
 
count=1
until [[ $count -gt $antall ]] ; do
count=$((count + 1))
done
 
echo -n $tegn $tegn $tegn $tegn $tegn
read v
______
output: 
kel@ubuntu:~/bin$ oppg_1
A A A A A
 
______
 
 
Er dette riktig eller trenger jeg ikke "echo-n $tegn... read v"?
Hvis jeg har riktig: Tror jeg nok jeg må opprette en ny variabel for: jeg vil at det skal gå automatisk når jeg endrer antall variabelen til f.eks. 8. Hvis jeg har en variabel så trenger jeg ikke å skrive manuelt echo -n $tegn $tegn $tegn $tegn $tegn ... 8 ganger..
 
Noen smarte hoder der ute som kan hjelpe meg :p?
 
Endret av Kj3tll
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...