Shell script?
Jeg 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?
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?
Kommentarer5
Put scriptet i
/usr/bin/
/usr/bin/
husk i øvrigt at gøre det
chmod +x
og hvis du vil kunne kalde scriptet med "myBackup" skal du jo lige have omdøbt filen fra "myBackup.sh" til "myBackup"
Argumenter til bash-script
fx et script kaldet 'kopi' som altid kopiere til /var/log:
#!/bin/sh
cp $1 /var/log/$2
Det køres bare med:
kopi (filnavn) (nyt_navn)
hvorefter (filnavn) kopieres til /var/log/(nyt_navn)
PATH og så videre
echo $PATH
Så kan du se de stier som bash vil lede i når du indtaster en kommando.
Værdier er adskilt af ":".
Der står ofte "~/bin" i listen et sted. Hvis dette er tilfældet kan du lave et katalog i din hjemmemappe der hedder bin. F.eks. /home/jakob/bin . Så kan du lægge scripts der (husk at køre "chmod +x" på dem).
Hvis ~/bin ikke er med i PATH men du gerne vil have at den skal være det, så kan du editere ~/.bashrc filen og tilføje denne linje:
export PATH=$PATH:~/bin
Argumenter
#!/bin/sh
case "$1" in
start)
#indsæt noget kode som starter noget
;;
stop)
#indsæt noget kode som stopper noget
;;
*)
#Fang alt andet og gør det her
echo "Dette argument er ikke tilladt"
;;
esac
Så gør scriptet præcis kun hvad du har brug for.