|
| 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
| |
|
|