/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Lidt problemer med shellscript
Fra : Jonas Jalling


Dato : 02-08-04 21:27

Hej,

Jeg er igang med følgende script, der skal teste om der er nogle updates til
de programmer jeg har liggende på min computer. Det ser ud som følger:

emerge -p world | if [ -n - ]; then echo -e "The following updates are
available for your system:\n" | mail -s "System updates" (min e-mail); fi

Men hvordan søren får jeg den til at inkludere outputtet fra "emerge -p
world"?

(hvis det har nogen interesse, er det på gentoo)
--
Med venlig hilsen
Jonas Jalling



 
 
Henrik S. Pedersen (03-08-2004)
Kommentar
Fra : Henrik S. Pedersen


Dato : 03-08-04 06:30


Jonas Jalling wrote:

> Jeg er igang med følgende script, der skal teste om der er nogle updates til
> de programmer jeg har liggende på min computer. Det ser ud som følger:
>
> emerge -p world | if [ -n - ]; then echo -e "The following updates are
> available for your system:\n" | mail -s "System updates" (min e-mail); fi
>
> Men hvordan søren får jeg den til at inkludere outputtet fra "emerge -p
> world"?

Noget i stil med:

#!/bin/sh
OUTPUT=`emerge -p world`
if [ -n "$OUTPUT" ]
then
echo "Updates: $OUTPUT" | mail -s "System updates" (din e-mail)
fi

(jeg kender ikke kommandoen emerge, men antager, at den returnerer
ingenting, hvis der ikke er opdateringer).

--
Mvh. Henrik


Leo Laursen (03-08-2004)
Kommentar
Fra : Leo Laursen


Dato : 03-08-04 07:12

On 2004-08-03, Henrik S. Pedersen <aaa_nospam@c.dk> wrote:
> Jonas Jalling wrote:
>> Men hvordan søren får jeg den til at inkludere outputtet fra "emerge -p
>> world"?
>
> Noget i stil med:
>
> #!/bin/sh
> OUTPUT=`emerge -p world`
> if [ -n "$OUTPUT" ]
> then
> echo "Updates: $OUTPUT" | mail -s "System updates" (din e-mail)
> fi
>
> (jeg kender ikke kommandoen emerge, men antager, at den returnerer
> ingenting, hvis der ikke er opdateringer).
>
Desværre returnerer den altid en text besked.
nagual vim # emerge -p world | less

These are the packages that I would merge, in order:

Calculating world dependencies ...done!

Der er altså 5 linier, så måske kan man sige:
OUTPUT=$(emerge -p world | sed -e '1,5d')

Jeg har lige kørt emerge -u world, så jeg kan ikke lige teste med
output.

Leo

Henrik S. Pedersen (03-08-2004)
Kommentar
Fra : Henrik S. Pedersen


Dato : 03-08-04 07:30


Leo Laursen wrote:
> On 2004-08-03, Henrik S. Pedersen <aaa_nospam@c.dk> wrote:
>> [SNIP]
>>(jeg kender ikke kommandoen emerge, men antager, at den returnerer
>>ingenting, hvis der ikke er opdateringer).
>>
> Desværre returnerer den altid en text besked.
> nagual vim # emerge -p world | less
>
> These are the packages that I would merge, in order:
>
> Calculating world dependencies ...done!
>
> Der er altså 5 linier, så måske kan man sige:
> OUTPUT=$(emerge -p world | sed -e '1,5d')

Hvis det altid er 5 linier, der skal fjernes, må du kunne bruge

OUTPUT=`emerge -p world | tail +6`

--
Mvh.
Henrik

Leo Laursen (03-08-2004)
Kommentar
Fra : Leo Laursen


Dato : 03-08-04 17:36

On 2004-08-03, Henrik S. Pedersen <aaa_nospam@c.dk> wrote:
>> Der er altså 5 linier, så måske kan man sige:
>> OUTPUT=$(emerge -p world | sed -e '1,5d')
>
> Hvis det altid er 5 linier, der skal fjernes, må du kunne bruge
> OUTPUT=`emerge -p world | tail +6`
>
Tja, hvis man absolut foretrækker tail (eller backticks); og man iøvrigt har
en tail der understøtter den syntax.
Jeg er nødt til at bruge tail -n +6

Jeg prøvede lige at rsync'e. Det ser ud til at den 5. linie skal bruges,

nagual # emerge -p world | less

These are the packages that I would merge, in order:

Calculating world dependencies ...done!
[ebuild U ] app-shells/bash-3.0-r4 [3.0-r2]
[ebuild U ] sys-apps/baselayout-1.10.2 [1.10.1-r2]
[ebuild U ] sys-apps/hdparm-5.5-r2 [5.5-r1]

Måske sådan her
#v+
#!/bin/sh
OUTPUT=$(emerge -pv world)
if [ $(echo ${OUTPUT} | grep -c) -gt 5 ]; then
mail ...
fi
#v-

Leo

Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408531
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste