/ 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
bash "compiler" direktiv
Fra : Lars P. Magnussen


Dato : 31-07-06 14:47

Til brug i bash scripts, finder der noget lignende som $IFDEF, #if defined
osv., til at (om)definere div. afsnit mv., bl. a. til testformål

Mvh
Lars P. Magnussen



 
 
Klaus Ellegaard (31-07-2006)
Kommentar
Fra : Klaus Ellegaard


Dato : 31-07-06 14:58

"Lars P. Magnussen" <nix_spam_lpm@magnatek.nejtak> writes:

>Til brug i bash scripts, finder der noget lignende som $IFDEF, #if defined
>osv., til at (om)definere div. afsnit mv., bl. a. til testformål

Jeg bruger generelt ikke bash, men følgende virker f.eks. fint i sh:

| #!/bin/sh
|
| # Udkommenter disse linjer, hvis der IKKE skal hhv. debugges
| # og/eller køres testforløb
| DEBUG="JA"
| DRYRUN="JA"
|
|
| if [ -n "$DRYRUN" ]
| then
| RM="echo rm"
| else
| RM=rm
| fi
|
| if [ -n "$DEBUG" ]
| then
| echo Nu sletter vi vores midlertidige fil
| fi
|
| $RM filnavn

Det kan evt. kombineres med at gøre scriptet meget portabelt, fordi
man på den måde også kan tage hensyn til, at man måske skal kalde
cc og gmake på Solaris, hvorimod samme på Linux er hhv. gcc og make.
Eller noget i den dur.

Mvh.
   Klaus.

Lars P. Magnussen (31-07-2006)
Kommentar
Fra : Lars P. Magnussen


Dato : 31-07-06 15:13

>
> Jeg bruger generelt ikke bash
>
Hvad så, perl ?


> |
> | if [ -n "$DRYRUN" ]
>
Ok, det var også noget i den retning jeg var kommet frem til


Mvh
Lars P. Magnussen



Klaus Ellegaard (31-07-2006)
Kommentar
Fra : Klaus Ellegaard


Dato : 31-07-06 15:20

"Lars P. Magnussen" <nix_spam_lpm@magnatek.nejtak> writes:

>> Jeg bruger generelt ikke bash
>>
>Hvad så, perl ?

Sædvanligvis den gode gamle Bourne Shell (sh).

Jeg arbejder til daglig på tværs af Solaris, HP-UX, AIX, Linux og
Tru64. Laveste fællesnævner er sædvanligvis en god plan at sigte
efter.

På Linux er /bin/sh normalt også bash, som dog opfører sig lidt
anderledes, når den kaldes som sh (primært omkring opstarten).
Men på de de fleste andre systemer er der tale om en temmelig
begrænset fætter.

Mvh.
   Klaus.

Thorbjørn Ravn Ander~ (31-07-2006)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 31-07-06 21:24

"Lars P. Magnussen" <nix_spam_lpm@magnatek.nejtak> writes:

> > | if [ -n "$DRYRUN" ]
> >
> Ok, det var også noget i den retning jeg var kommet frem til

[ er et alias for test, og dén er der en manualside for.

Du kan lave temmeligt komplicerede udtryk på den måde. Bemærk også at
sh (og derfor bash) kan lave nogen meget raffinerede variabel
ekspansioner.
--
Thorbjørn Ravn Andersen

Michael Rasmussen (31-07-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 31-07-06 22:55

On Mon, 31 Jul 2006 22:24:00 +0200, Thorbjørn Ravn Andersen wrote:

>
> [ er et alias for test, og dén er der en manualside for.
>
Skal scriptet være portabelt, kan det ikke anbefales at benytte [ som
alias for test. Ikke alle shells understøtter [

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Kent Friis (31-07-2006)
Kommentar
Fra : Kent Friis


Dato : 31-07-06 23:04

Den Mon, 31 Jul 2006 23:55:21 +0200 skrev Michael Rasmussen:
> On Mon, 31 Jul 2006 22:24:00 +0200, Thorbjørn Ravn Andersen wrote:
>
>>
>> [ er et alias for test, og dén er der en manualside for.
>>
> Skal scriptet være portabelt, kan det ikke anbefales at benytte [ som
> alias for test. Ikke alle shells understøtter [

Jeg har set mindst et system hvor [ var et symlink til test. Så hvis
ellers test kan håndtere at linien slutter med ], understøtter
alle systemer [.

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

Michael Rasmussen (31-07-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 31-07-06 23:10

On Mon, 31 Jul 2006 22:03:45 +0000, Kent Friis wrote:

>
> Jeg har set mindst et system hvor [ var et symlink til test. Så hvis
> ellers test kan håndtere at linien slutter med ], understøtter alle
> systemer [.
[ er altid et symlink til test, men det betyder jo ikke, at den anvendte
shell kender til det? Hvis jeg tænker lidt efter, mener jeg ikke [ er
understøttet i standard shell på AIX og Irix.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Kent Friis (31-07-2006)
Kommentar
Fra : Kent Friis


Dato : 31-07-06 23:22

Den Tue, 01 Aug 2006 00:09:39 +0200 skrev Michael Rasmussen:
> On Mon, 31 Jul 2006 22:03:45 +0000, Kent Friis wrote:
>
>>
>> Jeg har set mindst et system hvor [ var et symlink til test. Så hvis
>> ellers test kan håndtere at linien slutter med ], understøtter alle
>> systemer [.
> [ er altid et symlink til test, men det betyder jo ikke, at den anvendte
> shell kender til det?

En shell skal ikke kende til symlinks, det klarer kernen inde bag ved.
Shell'en vil blot kalde exec("/usr/bin/[",...), og så får den
/usr/bin/test i stedet for.

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

Klaus Ellegaard (01-08-2006)
Kommentar
Fra : Klaus Ellegaard


Dato : 01-08-06 06:31

Michael Rasmussen <mir@miras.org> writes:

>[ er altid et symlink til test, men det betyder jo ikke, at den anvendte
>shell kender til det? Hvis jeg tænker lidt efter, mener jeg ikke [ er
>understøttet i standard shell på AIX og Irix.

| klaus@aixtest01% uname -srv
| AIX 2 5
| klaus@aixtest01% /bin/sh i
| Nu sletter vi vores midlertidige fil
| rm filnavn

Det virker helt fint på AIX.

IRIX er heldigvis død og borte

Mvh.
   Klaus.

Michael Rasmussen (01-08-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 01-08-06 06:38

On Tue, 01 Aug 2006 05:30:44 +0000, Klaus Ellegaard wrote:

>
> Det virker helt fint på AIX.
>
He, he, budskabet er ellers normalt, at intet er det samme i AIX

> IRIX er heldigvis død og borte
>
ja, gudske tak og lov for det.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Per Riber (01-08-2006)
Kommentar
Fra : Per Riber


Dato : 01-08-06 20:14

Michael Rasmussen skrev:

> On Tue, 01 Aug 2006 05:30:44 +0000, Klaus Ellegaard wrote:
>> Det virker helt fint på AIX.
> He, he, budskabet er ellers normalt, at intet er det samme i AIX

Jeg har testet scriptet under z/OS UNIX, hvor det også virker upåklageligt.

mvh Per


Niels Baggesen (31-07-2006)
Kommentar
Fra : Niels Baggesen


Dato : 31-07-06 23:08

Michael Rasmussen <mir@miras.org> wrote:
> Skal scriptet være portabelt, kan det ikke anbefales at benytte [ som
> alias for test. Ikke alle shells understøtter [

Kan du nævne en (sh-kompatibel) shell der ikke gør? Vi snakker
selvfølgelig ikke csh syntax ...

/Niels

--
Niels Baggesen -- @home -- Århus -- Denmark -- niels@baggesen.net
The purpose of computing is insight, not numbers -- R W Hamming

Thorbjørn Ravn Ander~ (01-08-2006)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 01-08-06 07:15

Michael Rasmussen <mir@miras.org> writes:

> Skal scriptet være portabelt, kan det ikke anbefales at benytte [ som
> alias for test. Ikke alle shells understøtter [

Nejda, men så er det da en ekstern kommando.

--
Thorbjørn Ravn Andersen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408928
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste