Ongelmia tuottaa seuraava skriptinpätkä:
#!/bin/bash
# skripti käynnistettävien ja sammutettavien palvelujen näyttämiseksi
# (c) GPL Mikko Saarinen 12.2.2006
echo "Järjestelmässä käynnistettävät palvelut eri ajotasoilla"
for i in S 1 2 3 4 5 6 0
do
echo "----------"
echo "Ajotaso $i"
cd /etc/rc"$i".d/
echo "----------"
echo "Käynnistyvät palvelut"
echo "`ls /etc/rc$i.d/S* | sed -e s+/etc/rc$1.d/S++`"
done
Tässä tuon sed-komennon pitäisi tiputtaa rivin alusta pois /etc/rc2.d/S -kaltaiset merkkijonot, mutta sitä se ei tee.
Komentoriviltä tämä toimii hyvin, miksi siis ei skriptissä?
Nuo lainausmerkit (") tarvitaan jotta echo ei söisi kaikkia rivinvaihtoja tulosteesta.
Toinen kysymysmerkki on tuo ls-käskyn -L vipu (--dereference). Suomennetun man-sivun mukaan
Listaa symboolisten linkkien osoittamat tiedostot linkin sisällön sijaan.Eli käskyn
ls -L /etc/rc2.d/S13gdm pitäisi tuottaa tulokseksi käsittääkseni
/etc/init.d/gdm, mutta näin se ei tee. Miksiköhän?
Niin ja jos joku ihmettelee miksi tällaista skriptiä rakennan, niin katsokaa tämä
http://forum.ubuntu-fi.org/index.php?topic=1723.msg13465#msg13465Mikko Saarinen