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