13. januar 2008 - 18:00Der er
16 kommentarer og 1 løsning
Linux: Shell Script
Jeg kører Ubuntu 7.10 og har lavet et shell script som hedder myBackup.sh. Hvordan kan jeg lave sådan, at det bliver kørt, når jeg i terminalen skriver "myBackup"?
Hvordan laver jeg i øvrigt sådan, at man i mit shell script kan tage argumenter fra kaldet? Sådan at jeg f.eks. kan fange "myBackup --media", hvor den så kun tager backup af media? Må kunne lave en if-sætning som kan spørge om der står "--media" som argument?
Ja, det er jeg også med på! Men jeg vil gerne have at "programmet" ALTID kan køres ved at skrive myBackup som ved alle andre programmer der er installeret!
if [ "$1" = "--media" ]; then backupMedia; else if [ "$1" = "--document" ]; then backupDocument; else if [ "$1" = "--usb" ]; then backupUSB; else backupAll; fi
Du kan evt lave et symlink fra /usr/sbin til /stien/myBackup.sh
eks:
ln -s /sti/til/myBackup.sh /usr/sbin/myBackup.sh
Så kan du åbne myBackup.sh ALLE steder fra, altså så længe din bruger har adgang til sbin (root) ellers skal du bare linke til /usr/bin i stedet for....
Hvis du skal bruge argumenter til din kommando, skal du bruge et "case statement" og ikke et "if statement". Eks.
case "$1" in test1) echo "Dette er 'test1' argument" ;; test2) echo "Dette er 'test2' argument" ;; esac
Når dit script er færdigt, så læg det evt. i /usr/local/bin. Hvis du ønsker, at lægge det et sted som ikke er en del af dit $PATH, må du tilføje den sti til dit $PATH permanent. Hvis du f.eks. bruger en korn shell, tilføjer du stien i i din profile, som ligger her: $HOME/.profile
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.