/ 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
Shellscript til Redhat 6.2
Fra : Jesper Petersen


Dato : 06-05-02 17:11

Hejsa....

jeg mangler lide hjælp til at fremstille et shellscript til at mounter mine
NFS drev under opstart fa min box men kun hvis den pågældende nfs server er
online, jeg kunne forstille mig at det må lugte lidt af dette her:

#bin/bash

if (PING 192.168.0.1 == TRUE)
{
mount -f nfs 192.168.0.1:/home /home/server1
echo "Server 1 online";
}
else
{
echo "Server 1 offline";
}

og så vidre...........

Er der nogen som kan pege min i den rigtige retning.........

Vh. Jesper



 
 
Claus Rasmussen (06-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 06-05-02 19:36

Jesper Petersen wrote:

> #bin/bash
>
> if (PING 192.168.0.1 == TRUE)
> {
> mount -f nfs 192.168.0.1:/home /home/server1
> echo "Server 1 online";
> }
> else
> {
> echo "Server 1 offline";
> }

Ser fornuftigt ud. Bortset fra syntaxen:

#!/bin/bash

if ping -c5 192.168.0.1 >/dev/null 2>/dev/null
then mount -f nfs 192.168.0.1:/home /home/server1
else echo "Server 1 offline"
fi


> Er der nogen som kan pege min i den rigtige retning.........

Hvis du tænker på bøger eller web-sider er jeg lidt blank. Prøv
at kigge på Linux Documentation Project: http://www.tldp.org/

-Claus



>
> Vh. Jesper


Alex Holst (06-05-2002)
Kommentar
Fra : Alex Holst


Dato : 06-05-02 19:44

Claus Rasmussen <clr@cc-consult.dk> wrote:
> Jesper Petersen wrote:
>> #bin/bash
> #!/bin/bash

priceless$ /bin/bash
ksh: /bin/bash: not found
priceless$ uname -a
OpenBSD priceless 3.1 GENERIC#26 i386

--
I prefer the dark of the night, after midnight and before four-thirty,
when it's more bare, more hollow. http://a.area51.dk/

Claus Rasmussen (06-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 06-05-02 19:47

Alex Holst wrote:

> Claus Rasmussen <clr@cc-consult.dk> wrote:
>> Jesper Petersen wrote:
>>> #bin/bash
>> #!/bin/bash
>
> priceless$ /bin/bash
> ksh: /bin/bash: not found
> priceless$ uname -a
> OpenBSD priceless 3.1 GENERIC#26 i386

Subject: "Shellscript til Redhat 6.2"
^^^^^^^^^^
-Claus


Kent Friis (06-05-2002)
Kommentar
Fra : Kent Friis


Dato : 06-05-02 20:03

Den Mon, 06 May 2002 20:47:17 +0200 skrev Claus Rasmussen:
>Alex Holst wrote:
>
>> Claus Rasmussen <clr@cc-consult.dk> wrote:
>>> Jesper Petersen wrote:
>>>> #bin/bash
>>> #!/bin/bash
>>
>> priceless$ /bin/bash
>> ksh: /bin/bash: not found
>> priceless$ uname -a
>> OpenBSD priceless 3.1 GENERIC#26 i386
>
>Subject: "Shellscript til Redhat 6.2"

Derfor bør man alligevel bruge /bin/sh. Shell-scripts bør ikke have brug
for job control og readline editing. Og bash'es øvrige specialiteter kan
man som regel undvære.

Mvh
Kent
--
Gilthoniel, A Elbereth
Aiya elenion ancalima!
- Tolkien, "The Lord of the Rings"

Claus Rasmussen (06-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 06-05-02 20:10

Kent Friis wrote:

> Derfor bør man alligevel bruge /bin/sh. Shell-scripts bør ikke have brug
> for job control og readline editing. Og bash'es øvrige specialiteter kan
> man som regel undvære.

Det mener jeg nu ikke. Programmerer du stadig i K&R C, f.eks ?

Bash rummer en hel del korn-shell lignende faciliteter, som jeg
nødigt ville undvære under shell programmering.

-Claus


Kent Friis (06-05-2002)
Kommentar
Fra : Kent Friis


Dato : 06-05-02 20:47

Den Mon, 06 May 2002 21:09:42 +0200 skrev Claus Rasmussen:
>Kent Friis wrote:
>
>> Derfor bør man alligevel bruge /bin/sh. Shell-scripts bør ikke have brug
>> for job control og readline editing. Og bash'es øvrige specialiteter kan
>> man som regel undvære.
>
>Det mener jeg nu ikke. Programmerer du stadig i K&R C, f.eks ?

Nej, ANSI.

>Bash rummer en hel del korn-shell lignende faciliteter, som jeg
>nødigt ville undvære under shell programmering.

Hvilke?

Når jeg støder på nogen #!/usr/bin/ksh, plejer jeg at kunne rette til
/bin/sh uden problemer (jeg skal så ikke garantere for om /bin/sh er
symlinket til /bin/sh).

Mvh
Kent
--
Linux 0.12 is out
Windows XP is now obsolete!!!

Allan Olesen (06-05-2002)
Kommentar
Fra : Allan Olesen


Dato : 06-05-02 21:11

leeloo@phreaker.net (Kent Friis) wrote:

>(jeg skal så ikke garantere for om /bin/sh er
>symlinket til /bin/sh)

?


--
Allan

Claus Rasmussen (06-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 06-05-02 21:29

Kent Friis wrote:

> Hvilke?

Hvad med

v=linux-2.4.18.tar.gz
echo ${#v}
echo ${v:6:6}
echo ${v#*-}
echo ${v%.tar.*}
echo ${v/18/19}

w=( hej med dig )
echo ${#w}
echo ${w[1]}
echo ${w/e/E}

ls /usr/bin/{ls,dd}
echo $(( 3 * 4 ))
for (( i = 3; i < 10; ++i )); do echo $i; done

Og min yndlingsfeature i scripts:

ls | false | cat
echo ${PIPESTATUS[1]}

Plus en masse mere.

-Claus


Kent Friis (06-05-2002)
Kommentar
Fra : Kent Friis


Dato : 06-05-02 22:27

Den Mon, 06 May 2002 22:28:45 +0200 skrev Claus Rasmussen:
>Kent Friis wrote:
>
>> Hvilke?
>
>Hvad med
>
> v=linux-2.4.18.tar.gz
> echo ${#v}
> echo ${v:6:6}
> echo ${v#*-}
> echo ${v%.tar.*}
> echo ${v/18/19}
>
> w=( hej med dig )
> echo ${#w}
> echo ${w[1]}
> echo ${w/e/E}

Dem kan jeg aldrig huske (og der var vist også et par af dem jeg ikke
har set før).

> ls /usr/bin/{ls,dd}

Den bruger jeg kun på kommando-linien.

> echo $(( 3 * 4 ))

turbo!kfr $ /bin/sh
turbo!kfr $ echo $(( 3 * 4 ))
12
turbo!kfr $

Men som nævnt andetsteds, skal jeg ikke udelukke at /bin/sh er en kopi
af /usr/bin/ksh.

> for (( i = 3; i < 10; ++i )); do echo $i; done

Den havde jeg ikke set før. Bruger altid for i in $(seq 3 10)

>Og min yndlingsfeature i scripts:
>
> ls | false | cat
> echo ${PIPESTATUS[1]}

Den havde jeg heller ikke set før.

Mvh
Kent
--
Mails skrevet før 12:00 skal læses med det forbehold, at hjernen først
forventes at være færdig med at boote på det tidspunkt, og indholdet
derfor kan indeholde random data der tilfældigvis lå i den
uinitializerede cache.

Claus Rasmussen (06-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 06-05-02 22:41

Kent Friis wrote:

>> for (( i = 3; i < 10; ++i )); do echo $i; done
>
> Den havde jeg ikke set før. Bruger altid for i in $(seq 3 10)

Hvad så hvis intervallet er tomt ? Altså f.eks:

for (( i = 3; i < 3; ++i)); do echo $i; done

MVH
-Claus


Kent Friis (07-05-2002)
Kommentar
Fra : Kent Friis


Dato : 07-05-02 06:40

Den Mon, 06 May 2002 23:40:38 +0200 skrev Claus Rasmussen:
>Kent Friis wrote:
>
>>> for (( i = 3; i < 10; ++i )); do echo $i; done
>>
>> Den havde jeg ikke set før. Bruger altid for i in $(seq 3 10)
>
>Hvad så hvis intervallet er tomt ? Altså f.eks:
>
> for (( i = 3; i < 3; ++i)); do echo $i; done

Så lader man være med at skrive linien

Mvh
Kent
--
Those who write "Optimized for Netscape" og "Best viewed with MSIE"
never figured out the difference between the WWW and a
Word Perfect 4.2 Document.

Martin Ehmsen (06-05-2002)
Kommentar
Fra : Martin Ehmsen


Dato : 06-05-02 22:27

Kent Friis <leeloo@phreaker.net> wrote:
>>Det mener jeg nu ikke. Programmerer du stadig i K&R C, f.eks ?

> Nej, ANSI.

Hvilket vist er det samme.
Min K&R 2nd edition påstår ihvertfald at den angiver ANSI C.

Man bør vel altid programmere efter den angivne standard. Ellers er der
ingen grund til at have en standard.

Martin
--
Interesting Theorem: All positive integers are interesting. Proof:
Assume the contrary. Then there is a lowest non-interesting positive
integer. But, hey, that's pretty interesting! A contradiction.
   Anonym

Kent Friis (06-05-2002)
Kommentar
Fra : Kent Friis


Dato : 06-05-02 22:41

Den Mon, 6 May 2002 21:27:22 +0000 (UTC) skrev Martin Ehmsen:
>Kent Friis <leeloo@phreaker.net> wrote:
>>>Det mener jeg nu ikke. Programmerer du stadig i K&R C, f.eks ?
>
>> Nej, ANSI.
>
>Hvilket vist er det samme.
>Min K&R 2nd edition påstår ihvertfald at den angiver ANSI C.

Var der ikke et eller andet med:

int main(argc, argv)
int argc;
char ** argv;
{
return 0;
}

i forhold til:

int main(int argc, char ** argv) {
return 0;
}

Mvh
Kent
--
echo f 0:0 ffff 0 | debug

Byrial Jensen (10-05-2002)
Kommentar
Fra : Byrial Jensen


Dato : 10-05-02 10:35

Martin Ehmsen <ehmsen@imada.sdu.dk> skrev:
> Kent Friis <leeloo@phreaker.net> wrote:
>>>Det mener jeg nu ikke. Programmerer du stadig i K&R C, f.eks ?
>
>> Nej, ANSI.
>
> Hvilket vist er det samme.

Nej.

> Min K&R 2nd edition påstår ihvertfald at den angiver ANSI C.

Med K&R C menes C som beskrevet i første udgave.

> Man bør vel altid programmere efter den angivne standard. Ellers er der
> ingen grund til at have en standard.

Den gældende C-standard er for tiden ISO/IEC 9899:1999, normalt
kaldet C99. Hvorfor bruger du så ANSI C? Det er ikke gældende
standard længere.

frank damgaard (06-05-2002)
Kommentar
Fra : frank damgaard


Dato : 06-05-02 22:13

Claus Rasmussen <clr@cc-consult.dk> wrote:

>> Derfor bør man alligevel bruge /bin/sh. Shell-scripts bør ikke have brug
>> for job control og readline editing. Og bash'es øvrige specialiteter kan
>> man som regel undvære.

> Det mener jeg nu ikke. Programmerer du stadig i K&R C, f.eks ?

Hvad er der galt med C ? til nogle opgaver er C da fint :)

> Bash rummer en hel del korn-shell lignende faciliteter, som jeg
> nødigt ville undvære under shell programmering.

Hvad er /bin/sh på din maskine ?

I linux er det ofte et link til bash, men når bash kaldes som "sh"
så kører den i "posix" mode og ligner på en del punkter ksh
som også er tæt på posix standarden.
Se evt. http://www.sslug.dk/foredrag/POSIX_Bash/

Der er meget få ting i bash som er non-posix og som man virkelig har
brug for i et shellscript.


--
Frank Damgaard |


Claus Rasmussen (07-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 07-05-02 06:09

frank damgaard wrote:

> Der er meget få ting i bash som er non-posix og som man virkelig har
> brug for i et shellscript.

Hmmm... Det er ud til at du (I) har ret: /bin/sh æder i hvert fald
hele min liste over lækre bash features uden problemer - bortset fra
{}er i shell globs, men det er til at undvære.

-Claus




Klaus Alexander Seis~ (06-05-2002)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 06-05-02 19:51

Claus Rasmussen skrev:

> Ser fornuftigt ud. Bortset fra syntaxen:
>
> #!/bin/bash
>
> if ping -c5 192.168.0.1 >/dev/null 2>/dev/null
> then mount -f nfs 192.168.0.1:/home /home/server1
> else echo "Server 1 offline"
> fi

Hvis man ikke hænger sig for meget i om der står "online" eller
"alive", eller den slags, kan en ét-linjers med fping gøre det:

fping 192.168.0.1 && mount -f nfs 192.168.0.1:/home /home/server1


// Klaus

--
><>    vandag, môre, altyd saam

Claus Rasmussen (06-05-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 06-05-02 20:14

Klaus Alexander Seistrup wrote:

> fping 192.168.0.1 && mount -f nfs 192.168.0.1:/home /home/server1

fping findes ikke på mit system (RH 7.2). Er det en Debian dims ?

I øvrigt kan det samme nummer laves med ping men det bliver knapt
så kønt pga. omdirrigeringerne af stdout og stderr:

ping -c5 192.168.0.1 >/dev/null 2>/dev/null && osv...

Shell programmer, der ikke holder deres mund er møgirriterende.

-Claus


Klaus Alexander Seis~ (07-05-2002)
Kommentar
Fra : Klaus Alexander Seis~


Dato : 07-05-02 16:18

Claus Rasmussen skrev:

>> fping 192.168.0.1 && [...]
>
> fping findes ikke på mit system (RH 7.2). Er det en Debian dims ?

Jeg brugte vist fping før jeg gik over til Debian, men, ja, fping
(og fping6 til IPv6) er med i Debian.


// Klaus

--
><>    vandag, môre, altyd saam

Jesper Petersen (06-05-2002)
Kommentar
Fra : Jesper Petersen


Dato : 06-05-02 23:37

Claus Rasmussen wrote:

>
> Ser fornuftigt ud. Bortset fra syntaxen:
>
> #!/bin/bash
>
> if ping -c5 192.168.0.1 >/dev/null 2>/dev/null
> then mount -f nfs 192.168.0.1:/home /home/server1
> else echo "Server 1 offline"
> fi
>

Tak for hjælpen, det var lige det jeg skulle bruge...:)

--------------------------[ Jesper "ÜberGeeK" Petersen ]-------------------

Human Knowledge Belongs To The World
-- Milo Hoffman in "AntiTrust"
-----------[ geek at notech dot dk]-----------------------------------------

Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408825
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste