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