Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: future - 25.01.07 - klo:20.16
-
minkälainen koodi pitäs näpytellä, et esimerkiksi tää alla oleva komento toimisi. siis perlillä. olen vielä aika avuton näissä sripteissä. onko perl paras mahdollinen tähän terkoitukseen?
sudo modprobe -r pcnet32
sudo modprobe pcnet32 homepna=1
olen itse yrittänyt seuraavaa(eli ei siis mitään hajua asiasta):
tiedostonimi: run_internet.pl
#!/usr/bin/perl -w
print "sudo modprobe -r pcnet32";
print "sudo modprobe pcnet32 homepna=1";
-
minkälainen koodi pitäs näpytellä, et esimerkiksi tää alla oleva komento toimisi. siis perlillä. olen vielä aika avuton näissä sripteissä. onko perl paras mahdollinen tähän terkoitukseen?
sudo modprobe -r pcnet32
sudo modprobe pcnet32 homepna=1
olen itse yrittänyt seuraavaa(eli ei siis mitään hajua asiasta):
tiedostonimi: run_internet.pl
#!/usr/bin/perl -w
print "sudo modprobe -r pcnet32";
print "sudo modprobe pcnet32 homepna=1";
Komentoja suoritetaan vaikkapa näin (3 erilaista tapaa)
`sudo modprobe -r pcnet32`;
`sudo modprobe pcnet32 homepna=1`;
Tuo mystinen ` -hipsu ilmenee yleensä AltGr+*+välilyönti -yhdistelmällä.
system("sudo modprobe -r pcnet32");
system("sudo modprobe pcnet32 homepna=1");
Ja lopuksi pipe, eli tässä merkitsevä asia on | -merkki komennon lopussa
open XXX, "sudo modprobe -r pcnet32 |";
close XXX;
open XXX, "sudo modprobe pcnet32 homepna=1 |";
close XXX;
Katsele manuaalista miten nuo eroavat toisistaan, eroja on lähinnä siinä miten muu ohjelma jatkaa suoritustaan.
Ja perlihän siis on ihan paras kaikkiin mahdollisiin tarkoituksiin. ;)
-
Tuo mystinen ` -hipsu ilmenee yleensä AltGr+*+välilyönti -yhdistelmällä.
Tai sitten shift+'+välilyönti, missä ' on askelpalauttimen (backspace) vasemmalla puolella oleva merkki.
onko perl paras mahdollinen tähän terkoitukseen?
Itse tekisin tuosta sh- tai bash-skriptin. Tuossa ei tähän mennessä ole mitään mikä edellyttäisi perl:n käyttämistä. Alla esimerkkitoteutus sh-skriptinä (joka ubuntuympäristöstä riippuen suoritetaan joka bash- tai dash-tulkilla).
#!/bin/sh
sudo modprobe -r pcnet32
sudo modprobe pcnet32 homepna=1
Jos tuota lähtee laajentamaan ja käytössä olevassa ubuntussa on sh linkattu bash-tulkkiin niin silloin kannattaa vaihtaa ensimmäinen rivi viittaamaan suoraan bash-tulkkiin. Muuten käy herkästi niin että käyttää huomaamattaan bash:n ominaisuuksia jotka eivät normaalissa sh-tulkissa toimi ja sitten käyttöjärjestelmän päivityksen jälkeen ihmetellään kun skriptit eivät enää toimi kun käyttöjärjestelmän sh-viittaus on muutettu dash-tulkkiin.
Tässä nimenomaisessa tapauksessa en usko laajennustarpeeseen, mutta jos sellaista olisi niin sitten tarpeesta riippuen myös perl voisi olla järkevä vaihtoehto. Riippuu ihan siitä mitä pitää tehdä :)