Avatar billede dex_dexter Nybegynder
03. december 2001 - 21:00 Der er 13 kommentarer og
2 løsninger

shell scripts - hvordan?

jeg skal have lavet et par scripts der mounter og umounter nogle shares på en windows maskine.
selve kommandoerne har jeg fat i, men hvordan får man lavet det jeg vil kalde linux´s svar på bat filer?
de kommandoer jeg skal have den til at udføre er
mount -t smbfs -o username=test,password=test //test/test$ /home/test
i den ene og
umount /home/test

eller i en fil hvor man så kunne lave nogle parametre bag efter altså fx
shares -m mounter drevet og shares -u unmounter drevet.
kan det lade sig gøre?
Avatar billede snowball Novice
03. december 2001 - 21:06 #1
Du smider bare kommandoen ind i en fil og chmod\'er den som 744 bagefter. Så kan du eksekvere den som ./filnavn helt li\'som en .bat fil :)

Snowball
Avatar billede dex_dexter Nybegynder
03. december 2001 - 21:07 #2
funker ikke helt efter hensigten.
den kommer ikke med nogen fejl, men den mounter bare ikke drevet :(
Avatar billede langbein Nybegynder
03. december 2001 - 21:07 #3
Lurer på om jeg ikke bare laget en tekstfil med kommandoene ved hjelp av pico.
Der nest så eksekverte jeg filen ved å skrive noe slik som \"bash <filnavn>\" så kjørte det. Mulig at jeg måtte kjøre chmod 777 for filen eller noie slik for å gjøre den eksekverbar. Tror faktisk ikke at dette var nødvendig. det skal også være mulig å lage filen slik at den skal kunne eksekveres direkte uten via kommandoen bash men det fikk jeg av en eller annen grunn ikke til å fungere.
Avatar billede langbein Nybegynder
03. december 2001 - 21:09 #4
Leste ikke Snowball sitt innlegg. Vi skrev visst samtidig. cchmod 774 er sansynligvis tistrekkelig.
Avatar billede dex_dexter Nybegynder
03. december 2001 - 21:18 #5
langbein, det virker sgu ikke her ved mig :(
hvis jeg har umount /home/dex2k/drives/* liggende i en fil ved navn umount-system, chmodder den til 777 eller 774 og kører den med ./umount-system kommer den med følgende fejl.
cannot execute binary file, men kører jeg umount /home/dex2k/drives/*
bare sådan i shell virker det fint
Avatar billede snowball Novice
03. december 2001 - 21:22 #6
Har du prøvet at sætte #!/bin/bash ind i toppen af din fil så den ved hvilken shell den skal bruge !?

Snowball
Avatar billede dex_dexter Nybegynder
03. december 2001 - 21:24 #7
yep, virker heller ikke.
Avatar billede dex_dexter Nybegynder
03. december 2001 - 21:33 #8
alle samlede script ser sådan her ud.

mount-p (mount public mountpoints)

mount -t smbfs -o username=user,password=password //dex2k/drev1 /home/drev1
mount -t smbfs -o username=user,password=password //dex2k/drev2 /home/drev2
mount -t smbfs -o username=user,password=password //dex2k/drev3 /home/drev3
mount -t smbfs -o username=user,password=password //dex2k/drev4 /home/drev4
mount -t smbfs -o username=user,password=password //dex2k/drev5 /home/drev5

umount-p (unmount public mountpoints)

umount /home/drev1
umount /home/drev2
umount /home/drev3
umount /home/drev4
umount /home/drev5



mount-system (mount private system-shares)
mount -t smbfs -o username=user,password=password //dex2k/c-drive$ /home/dex2k/drives/c
mount -t smbfs -o username=user,password=password //dex2k/d-drive$ /home/dex2k/drives/d
mount -t smbfs -o username=user,password=password //dex2k/e-drive$ /home/dex2k/drives/e
mount -t smbfs -o username=user,password=password //dex2k/f-drive$ /home/dex2k/drives/f
mount -t smbfs -o username=user,password=password //dex2k/g-drive$ /home/dex2k/drives/g
mount -t smbfs -o username=user,password=password //dex2k/h-drive$ /home/dex2k/drives/h

umount-system (umount private system-shares)
umount /home/dex2k/drives/*
Avatar billede skwat Praktikant
03. december 2001 - 22:04 #9
prøv med /bin/sh sidst jeg *Hackede* dig havde du ikke installeret bash:)
Avatar billede dex_dexter Nybegynder
03. december 2001 - 22:09 #10
aha... det var den skide text editor der lavede ged i den med at dele linjen.

snow>> jeg skal nok bruge #!/bin/sh i stedet da det er den shell jeg bruger.
Avatar billede langbein Nybegynder
03. december 2001 - 22:57 #11
Har sjekket litt her for å se om jeg husket riktig.
Har laget en fil som utfører diverse kommandoer som jeg har kalt for \"meny\".
Når jeg taster \"meny\" så kommer feilmelding \"command not found\"
Når jeg taster \"bash meny\" så fungerer det hele fint.
Dette forutsetter selvfølgelig at man har bash skallet installert.
Jeg har så langt ikke forsøkt å lage script som kan mounte av og på annet enn CD og Floppy og det kjører helt fint.
Avatar billede langbein Nybegynder
03. december 2001 - 23:00 #12
Jeg ser at jeg ikke har besvergelser av typen #!/bin/bash på toppen av min(e) fil(er). Det er kanskje forklaringen på at jeg ikke får eksekvert ved å skrive \"meny\", men at jeg må skrive \"bash meny\"
Avatar billede langbein Nybegynder
03. december 2001 - 23:07 #13
Forsøkte å legge inn #!/bin/bash på toppen av filen men det hjalp ingen ting fra eller til. Forsøkte så med chmod 774 og chmod 777. Heller ingen virkning. Må stadig vekk eksekvere filen med kommando \"bash meny\" uten at jeg forstår helt hvorfor men det fungerer da. Tilsvarende må det vel bli \"sh <filnavn>\" ?
Avatar billede langbein Nybegynder
03. december 2001 - 23:09 #14
Testet med \"sh meny\" hos meg. Det fungerte helt likt med \"bash meny\". Begge deler fungerer helt fint, men en direkte kommando: \"meny\" fungerer ikke.
Avatar billede dex_dexter Nybegynder
03. december 2001 - 23:23 #15
okay, det virker i alt fald her ved mig nu.

et andet spm om shell scripts
http://www.eksperten.dk/spm/142066

/dex2k
god jul & godt nytår
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester