From: "Morten Liebach" <none@m--mongers.org.lh.bsd-dk.dk> Date: Thu, 30 Jan 2003 15:16:35 +0100 To: bsd-novice@bsd-dk.dk Subject: Re: Skift shell
On 2003-01-30 14:14:44 +0100, Simon wrote:
> Morten Liebach wrote:
>
> >On 2003-01-29 22:20:05 +0100, Simon wrote:
> >
> >>cat /etc/passwd | sed 's!:/bin/sh$!:/bin/tcsh!' > /etc/passwd
> >>
> >Der er en "Useless Use of Cat Award" til dig. :)
> >Det skulle have været:
> >
> > sed 's!:/bin/sh$!:/bin/tcsh!' /etc/passwd > /etc/passwd
> >
> >Og det ville ikke virke. Du kan ikke lave in-place editing på den måde.
> >
> > sed 's!:/bin/sh$!:/bin/tcsh!' /etc/passwd > /etc/passwd.tmp && \
> > mv /etc/passwd.tmp /etc/passwd
> >
> Jeg kan se nogle sikkerhedsmæssige fordele i at bruge en midlertidig fil
> frem for at læse fra stdin, er der flere grunde til at min linje ikke
> burde virke over den sidst nævnte?
Hæ! ;)
Det er mere kompliceret end som så, kan jeg nu se. Jeg vil gætte på du
bruger bash. Den løsning du kom med virker med bash på Linux og zsh på
FreeBSD, men ikke tcsh og csh på FreeBSD (det er de shells jeg direkte
har kunnet teste).
Jeg troede ikke det virkede nogen steder, men det er nok et bourne vs.
c-shell issue. Bourne shells (eller i hvert fald zsh og bash) læser
hele filen med cat inden den trunkeres til 0 af '>', csh/tcsh åbner
outputfilen først, så når cat så skal til at læse input er der intet i
filen, og så står man uden /etc/master.passwd ...
> Siden sed læser en linje ad gangen er det nødvendigt at læse fra en
> anden kilde end fra filen direkte.
>
> Derudover skal du have tak for de yderligere rettelser, jeg er vist for
> vant til at Linux' nøjsomme måde at håndtere det på.
Som sagt, det er vist bourne vs. c-shell i dette tilfælde, men du har
ret i ovenstående mht. bourne shells, imens jeg gik ud fra c-shell
semantik.
> >Håber det løste problemet, og at nogen lærte noget. :)
Det gjorde jeg i hvert fald selv nu.
Med venlig hilsen
Morten
-- OpenPGP: 0xF1360CA9 -- 8CF5 32EE A5EC 36B2 4E3F ACDF 6D86 BEB3 F136 0CA9 Morten Liebach <none@m--mongers.org.lh.bsd-dk.dk> - http://m.mongers.org/
This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:25:07 CET