Permalänk
Medlem

kommandon genom skript?

Är så att jag skulle vilja fixa nåt litet skript där man t.ex. kan köra "kommando /mapp/namn" som sedan kör lite kommandon på filer inne i den mappen.

Går det att göra enkelt? Kollat lite på sh-filer, men fattar inte helt

(notera att jag är n00b inom detta område )

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Medlem

sh-filer kan göra det du säger.

sh <dir>/fil.sh
använder du för att köra dom, förutsatt att du inte är i mappen där filen ligger redan.

För att göra en sh-fil så starta bara en vanlig textfil med exempelvis nano, inled filen med
#!/bin/bash
detta ska man göra, men jag har märkt att det inte alltid är nödvändigt, iallafall inte i Ubuntu som jag använder.

Sedan skriver du bara varje kommando på en ny rad, exempelvis kan en sh-fil se ut såhär:
#!bin/bash
sudo aptitude install gimp
gimp ~/kul-bild.jpg

Då kommer den först att försöka installera gimp med aptitude och sedan öppna ~/kul-bild.jpg med gimp.

Vanliga shellscripts är alltså skitenkla att göra, bara skriv vad du hade skrivit i terminalen. Tror inte ens du behöver skriva "sh" för att köra dom, utan bara pathen till filen + filnamnet. Rätt bekvämt om du ska exekvera många kommandon på rad, specielt om dessa inte kräver din hjälp för att exekvera.

EDIT:
Har en känsla av att det här blev helflummigt skrivet, så tveka inte att fråga omd et är något du inte förstår.

Visa signatur

Macbook Pro 15" (2,4 GHz Core Duo)

Permalänk
Medlem

löste det faktist själv...var det att jag skrev skripten i wordpad på min stationära (win XP) till min linux-server och då blev det något konstigt med formatet. Så när jag körde nano på filen och sparade det så funkade det lite bättre

EDIT: vad kör man för if-sats för att kolla om filen "*.hej" finns?

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Medlem

Det som antagligen strulade för dig är att windows har ett annat sätt att avsluta raden än *nix så skapa/ändra dina skript med *nix editorer.

Så här kan en if sats se ut:

if [ -f /tmp/foobar.txt ]; then echo "Filen /tmp/foobar.txt finns" else echo "Filen /tmp/foobar.txt finns inte" fi

För att se vad -f gör titta i manualsidan för test (man test)

Visa signatur

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Permalänk
Medlem

Eller att wordpad använder formatering? Använd notepad nästa gång så ska det gå bra (tror jag)

Permalänk
Medlem

GunnarD: tack, funkar perfekt

NemroD: skulle gjort det, men om man då öppnar en fil som man pillat med i linux så lägger sig allt på första raden....

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Medlem
Citat:

NemroD: skulle gjort det, men om man då öppnar en fil som man pillat med i linux så lägger sig allt på första raden....

Låter mysko, brukar bara få den effekten när jag jobbar Linux -> Windows, inte tvärtom. Trodde det hade att göra med att Linux använder <newline> medan WIndows använder <return> <newline>, vilket bara borde ge problem vid konverteringen jag nämnt. Har jag missförstått något? :/

Visa signatur

Stationär: Intel-baserad, Arch + KDE
Bärbar: Dell XPS 13, Arch + KDE

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av ultima
NemroD: skulle gjort det, men om man då öppnar en fil som man pillat med i linux så lägger sig allt på första raden....

Öppnar du filen i notepad så lägger sig allt på en rad eftersom notepad (och andra rena windows editorer) förväntar sig att varje rad avslutas med "Carrige return" och "Line Feed" men *nix filer avslutar raderna med bara "Line Feed".

WordPad klarar av *nix filer och visar dom rätt, men tänk på att när man sparar filer i WordPad så är default formatet "Word format" man måste själv ändra till text format.

Visa signatur

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av GunnarD
Öppnar du filen i notepad så lägger sig allt på en rad eftersom notepad (och andra rena windows editorer) förväntar sig att varje rad avslutas med "Carrige return" och "Line Feed" men *nix filer avslutar raderna med bara "Line Feed".

WordPad klarar av *nix filer och visar dom rätt, men tänk på att när man sparar filer i WordPad så är default formatet "Word format" man måste själv ändra till text format.

Ungefär det jag skrev också, men det verkar som att han har problemet åt motsatt håll, d.v.s. Windows->Linux?

EDIT: För fan, jag måste vakna och läsa, glöm ovanstående.

Visa signatur

Stationär: Intel-baserad, Arch + KDE
Bärbar: Dell XPS 13, Arch + KDE

Permalänk
Permalänk
Medlem

Problemet var bara att jag satt och skrev lite långa jobbiga grejer genom nano = ingen möjlighet att kopiera eller så
Därför öppnade jag filen genom samba i wordpad och pillade lite i den, men det var bara att spara om den i nano så funkar det iaf..

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk
Medlem

Klart du kan kopiera i nano... Beror helt på vilken terminal du använder visserligen. I min favorit-terminal använder man ctrl+shift+c och +v för att kopiera respektive klistra in, kolla upp hur det är i din. Det går i alla fall som helst (om inte din terminal är riktigt kass).

Permalänk
Citat:

Ursprungligen inskrivet av ultima
Problemet var bara att jag satt och skrev lite långa jobbiga grejer genom nano = ingen möjlighet att kopiera eller så
Därför öppnade jag filen genom samba i wordpad och pillade lite i den, men det var bara att spara om den i nano så funkar det iaf..

Ctrl+k, ctrl+u...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Sachankara
Ctrl+k, ctrl+u...

Vilket i och för sig är klipp ut och klistra in. Men det funkar ju det med så...

Permalänk
Medlem

Jo märkte det. Men vad är då kopiera?

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower

Permalänk

Tja, det är väl bara att klippa ut det du ska ha och klistra in det två eller flera gånger... Testa flera ctrl+k, därefter ett ctrl+u...

Permalänk
Medlem

Man kan makera med musen och tryka på sin tredje musknapp för att klista in på ett anat ställe.

Permalänk
Medlem

Sachankara: jo, vet att man kan göra så. Känns bara som att man borde kunna göra det på enklare sätt

Visa signatur

Lian Li PC7SE | Athlon 2800+ | 2x 512MB | Leadtek 6800LE 16/1,6 @ 1,3v 400/870 | 250 + 160 + 2x 200 + 40 = 850GB
Pergo-kuben | Pergomodd2 | PSX-modd | HTPC i CD-spelare | Pergo-tower