|
| script problem Fra : carsten |
Dato : 03-01-08 22:41 |
|
Jeg har for nogen tid siden skiftet fra Mandriva til Kubuntu, og af årsager
mig uforklarlige, har jeg et script der ikke virker længere,
#!/bin/sh
echo ${DIR:=${PWD}}
echo ${DIR1:=${DIR/\/home\/carsten/}}
echo ${DIR2:=${DIR1//\//\\}}
som det sikker er tydeligt for en vær bliver /home/carsten fjernet fra stien
og derefter bliver stien lavet om til dos format, / bliver skiftet ud med \
det fungerede upåklageligt da jeg kørte Mandriva men nu
../mpasm: 3: Syntax error: Bad substitution
begge systemer er/var med bash
jeg har prøvet at lave det om til,
#!/bin/sh
echo ${DIR:=${PWD}}
echo $DIR | sed 's/\/home\/carsten//' | sed 's/\//\\/'g
men hvordan får jeg resultatet stoppet i en ny variabel til senere brug
i scriptet
/Carsten
| |
Allan Willems Joerge~ (03-01-2008)
| Kommentar Fra : Allan Willems Joerge~ |
Dato : 03-01-08 23:01 |
|
carsten <spam@spam.dk> wrote:
> #!/bin/sh
> det fungerede upåklageligt da jeg kørte Mandriva men nu
> ./mpasm: 3: Syntax error: Bad substitution
På (K)Ubuntu er /bin/sh i virkeligheden dash.
Du kan ændre det med
$ sudo dpkg-reconfigure dash
--
Med venlig hilsen / Best regards
Allan Willems Joergensen
"Existance is not only temporary, its pointless." Calvin
| |
carsten (04-01-2008)
| Kommentar Fra : carsten |
Dato : 04-01-08 06:20 |
|
Allan Willems Joergensen wrote:
> dpkg-reconfigure dash
det var tricket der løste mit problem
TAK
/Carsten
| |
Klaus Alexander Seis~ (03-01-2008)
| Kommentar Fra : Klaus Alexander Seis~ |
Dato : 03-01-08 23:01 |
|
Carsten skrev:
> Jeg har for nogen tid siden skiftet fra Mandriva til Kubuntu,
> og af årsager mig uforklarlige, har jeg et script der ikke
> virker længere,
>
> #!/bin/sh
> echo ${DIR:=${PWD}}
> echo ${DIR1:=${DIR/\/home\/carsten/}}
> echo ${DIR2:=${DIR1//\//\\}}
På Ubuntu linker /bin/sh til /bin/dash, som ikke kan det samme som
bash. Prøv at starte scriptet med #!/bin/bash i stedet.
> jeg har prøvet at lave det om til,
>
> #!/bin/sh
> echo ${DIR:=${PWD}}
> echo $DIR | sed 's/\/home\/carsten//' | sed 's/\//\\/'g
>
> men hvordan får jeg resultatet stoppet i en ny variabel til
> senere brug i scriptet
DIR2="$(echo $DIR | sed 's/\/home\/carsten//' | sed 's/\//\\/'g)"
Mvh,
--
Klaus Alexander Seistrup
http://klaus.seistrup.dk/
| |
carsten (04-01-2008)
| Kommentar Fra : carsten |
Dato : 04-01-08 06:33 |
|
Klaus Alexander Seistrup wrote:
>
> DIR2="$(echo $DIR | sed 's/\/home\/carsten//' | sed 's/\//\\/'g)"
>
i første omgang lavede den linje noget besynderligt, men efter at have
prøvet Allan's råd med
$ sudo dpkg-reconfigure dash
virker den korrekt
men det gør min gamle løsning også
/Carsten
screen dump fra sudo dpkg-reconfigure dash
virker lidt vrøvlet, men sådan er det somme tider med oversætelser
Bash er som udgangspunkt /bin/sh på et Debiansystem. Men da det er
Debianspolitik, at skalskripter, der benytter /bin/sh skal overholde
POSIX-standarden, vil enhver skal, der overholder POSIX kunne fungere
som /bin/sh. Siden dash er overholder POSIX, kan den benyttes som /bin/sh
Det kan være en fordel at gøre dette, fordi dash er hurtigere og mindre
en bash
| |
Adam Sjøgren (04-01-2008)
| Kommentar Fra : Adam Sjøgren |
Dato : 04-01-08 16:41 |
|
On Fri, 04 Jan 2008 06:32:56 +0100, carsten wrote:
> screen dump fra sudo dpkg-reconfigure dash
> virker lidt vrøvlet, men sådan er det somme tider med oversætelser
> Bash er som udgangspunkt /bin/sh på et Debiansystem. Men da det er
> Debianspolitik, at skalskripter, der benytter /bin/sh skal overholde
> POSIX-standarden, vil enhver skal, der overholder POSIX kunne fungere
> som /bin/sh. Siden dash er overholder POSIX, kan den benyttes som /bin/sh
> Det kan være en fordel at gøre dette, fordi dash er hurtigere og mindre
> en bash
Er der andet galt med den beskrivelse end det manglende 'd' i "og mindre
en bash"?
Eller er det oversættelsen "skal" for "shell" der generer dig?
Hvordan ville du formulere det?
Mvh.
--
"Yakka foob mog. Grug pubbawup zink wattoom gazork. Adam Sjøgren
Chumble spuzz." asjo@koldfront.dk
| |
Kent Friis (04-01-2008)
| Kommentar Fra : Kent Friis |
Dato : 04-01-08 16:50 |
|
Den Fri, 04 Jan 2008 16:40:55 +0100 skrev Adam Sjøgren:
> On Fri, 04 Jan 2008 06:32:56 +0100, carsten wrote:
>
>> screen dump fra sudo dpkg-reconfigure dash
>> virker lidt vrøvlet, men sådan er det somme tider med oversætelser
>
>> Bash er som udgangspunkt /bin/sh på et Debiansystem. Men da det er
>> Debianspolitik, at skalskripter, der benytter /bin/sh skal overholde
>> POSIX-standarden, vil enhver skal, der overholder POSIX kunne fungere
>> som /bin/sh. Siden dash er overholder POSIX, kan den benyttes som /bin/sh
>> Det kan være en fordel at gøre dette, fordi dash er hurtigere og mindre
>> en bash
>
> Er der andet galt med den beskrivelse end det manglende 'd' i "og mindre
> en bash"?
>
> Eller er det oversættelsen "skal" for "shell" der generer dig?
"Skalskripter" - det må sg* være den norske oversættelse der er smuttet
ind ved en fejl.
Mvh
Kent
--
"So there I was surrounded by all these scary creatures
They were even scarier than what Microsoft call features"
- C64Mafia: Forbidden Forest (Don't Go Walking Slow).
| |
carsten (04-01-2008)
| Kommentar Fra : carsten |
Dato : 04-01-08 19:42 |
|
Det er den lille passus sidst i teksten
fordi dash er hurtigere og mindre en bash
/Carsten
| |
Adam Sjøgren (05-01-2008)
| Kommentar Fra : Adam Sjøgren |
Dato : 05-01-08 00:53 |
|
On Fri, 04 Jan 2008 19:42:25 +0100, carsten wrote:
> Det er den lille passus sidst i teksten
> fordi dash er hurtigere og mindre en bash
Udover at der mangler et 'd' i 'end', hvad er så problemet med den
passus? dash _er_ mindre og hurtigere end bash.
Mvh.
--
"Yakka foob mog. Grug pubbawup zink wattoom gazork. Adam Sjøgren
Chumble spuzz." asjo@koldfront.dk
| |
|
|