Sida 2 av 2

SV: bash script?

Postat: 05 jan 2008, 13:54
av KiviE
Rasmus skrev: Men for i in `seq 1 $x`; skriver på en ny rad, jag vill skriva dem på en rad, och vad jag förstog funkade den bara på siffror:

Kod: Markera allt

pajn@pajn-desktop:~$ x='hej'
pajn@pajn-desktop:~$ for i in `seq 1 $x`; do     echo $x; done
seq: felaktigt flyttalsargument: hej
Försök med "seq --help" för mer information.
Fixade även fråga ett, pwd gav mig ett nytt sätt att tänka :)
Ah tänkte att det var samma siffra du ville skriva ut flera ggr ;)

Kod: Markera allt

for i in `seq 1 7`; 
do
     echo 'hej'; 
done
Dock blir inte det här heller på samma rad... men ska leta lite och se om jag hittar hur man gör.

SV: bash script?

Postat: 05 jan 2008, 14:03
av KiviE
Hittade inget direkt bra sätt men så här kan man alltid göra

Kod: Markera allt

for i in `seq 1 7`; 
do
     row=$row'hej' 
done

echo $row
Någon annan här kan garanterat ett bättre sätt. Har jag själv aldrig gjort något i bash egentligen.

SV: bash script?

Postat: 05 jan 2008, 14:20
av Rasmus
KiviE skrev: Hittade inget direkt bra sätt men så här kan man alltid göra

Kod: Markera allt

for i in `seq 1 7`; 
do
     row=$row'hej' 
done

echo $row
Någon annan här kan garanterat ett bättre sätt. Har jag själv aldrig gjort något i bash egentligen.
Tack, funka perfekt.

Edit:
En fråga till, hur gör man för att kolla längden på ord. I python: len('hej') men i bash?

Undrar även över Lulles fråga hur lägga till i autostart?
Kollade källkoden till screenlets-manager, den lägger en .desktop fil i ~/.config/autostart. Men då till frågan, vad är en .desktop fil? och hur skapar man en sådan?

SV: bash script?

Postat: 05 jan 2008, 14:43
av KiviE
Rasmus skrev: Edit:
En fråga till, hur gör man för att kolla längden på ord. I python: len('hej') men i bash?
Så här kan du göra

Kod: Markera allt

i='hej'

echo ${#i}

SV: bash script?

Postat: 07 jan 2008, 12:58
av Rasmus
Tack!  :D
Lånar tråden igen (blev fler frågor än jag trodde frånbörjan)
1. Hur läser man 12 i en fil? ni har tagit upp hur man ändra,lägger till och tar bort men inte hur man läser?

2. Hur gör man en fråga liknande if men som kollar om det innehåller "NÅGOT" (om det tillexempel står "ubuntu | kubuntu | xubuntu" så ska den kunna känna igen "ubuntu" och sedan utföra funktion ubu)

SV: bash script?

Postat: 07 jan 2008, 13:10
av mcNisse
Rasmus skrev: Tack!  :D
Lånar tråden igen (blev fler frågor än jag trodde frånbörjan)
1. Hur läser man 12 i en fil? ni har tagit upp hur man ändra,lägger till och tar bort men inte hur man läser?
En enkel while loop som läser en fil och skriver ut den. Du kan lägga till så många variabler som du behöver till read. Allt som inte får plats, dvs du har fler fält än variabler, hamnar i sista variabeln. Det är därför allt hamnar i line i mitt exempel.

Kod: Markera allt

while read line < file
do
    echo $line
done
Rasmus skrev: 2. Hur gör man en fråga liknande if men som kollar om det innehåller "NÅGOT" (om det tillexempel står "ubuntu | kubuntu | xubuntu" så ska den kunna känna igen "ubuntu" och sedan utföra funktion ubu)

Kod: Markera allt

if grep -q ubuntu file
then
   ubu
fi

SV: bash script?

Postat: 07 jan 2008, 14:52
av Rasmus
mcNisse skrev:
Rasmus skrev: Tack!  :D
Lånar tråden igen (blev fler frågor än jag trodde frånbörjan)
1. Hur läser man 12 i en fil? ni har tagit upp hur man ändra,lägger till och tar bort men inte hur man läser?
En enkel while loop som läser en fil och skriver ut den. Du kan lägga till så många variabler som du behöver till read. Allt som inte får plats, dvs du har fler fält än variabler, hamnar i sista variabeln. Det är därför allt hamnar i line i mitt exempel.

Kod: Markera allt

while read line < file
do
    echo $line
done
Förlåt, jag vill läsa på rad tolv inte läsa tolv :-[.

Förövrigt funkade det bra, tack.

SV: bash script?

Postat: 07 jan 2008, 15:25
av Konservburk
Rasmus skrev: Förlåt, jag vill läsa på rad tolv inte läsa tolv :-[.

Förövrigt funkade det bra, tack.

Kod: Markera allt

sed -n '12p' fil.txt