Trädvy Permalänk
Medlem
Plats
Boden
Registrerad
Maj 2004

Bash script, synpunkter?

Hej!

Har knåpat lite i bash nu och undrar om nån kan tycka till om scriptet?

Meningen är att installera x på xfce med mozilla, jag har tänkt använda det på några skol datorer i ett litet windows 98 to linux debian projekt, ska nog få en dator och leka på kanske!

#!/bin/bash # Jag har faktiskt snott ganska mycket, eller rättare sagt "inspirerats" av ett # script som finns på ubuntuforums.org. Mycket creds till dom killarna/tejerna! # en errror checker från det där ubuntuscripet som jag använder till att kolla av saker med check_errs() { if [ "${1}" -ne "0" ]; then echo "ERROR # ${1} : ${2}" exit ${1} fi } # Lite options som anger alias osv.. ### global options ### wget="/usr/bin/wget" apt="/usr/bin/apt-get" core_packages="build-essential" xwindows_packages="lbxproxy proxymngr twm x-window-system-core xfs xfwp xnest xprt-xprintorg xterm xvfb" xfce_packages="xfce4" media_packages="mozilla-firefox" ## Nu börjar scriptet på riktigt som.... ${apt} update check_errs $? "There was an error in apt-get update." sleep 5 echo "Det kan hända att extra packet måste installeras, tryck ja i fall du blir tillfrågad, detta gäller även under hela installastionen" ${apt} install ${core_packages} check_errs $? "There was an error in ${core_packages} installation." sleep 5 echo "Nu kommer X-grafik system att installeras" $(apt) install ${xwindows_packages} check_errs $? "Tyvärr så har det uppståt ett problem, kontakta sysadmin(x-windows)" echo "Nu kommer Fönsterhateraren installeras" $(apt) install ${xfce_packages} check_errs $? "Tyvärr så har det uppståt ett problem, kontakta sysadmin (xfce)" echo "Nu kommer den ultimata webbläsaren installeras" $(apt) install ${xwindows_packages} check_errs $? "Tyvärr så har det uppståt ett problem, kontakta sysadmin (mozilla)" echo "Nu hälsar Filleokus dig välkommen till ett nytt Debian powerd system" echo "Kom ihåg att genast starta om datorn"

Macbook Vit | Macbook Unibody | D80 | iPod Touch | iPhone 3GS

Trädvy Permalänk
Medlem
Registrerad
Nov 2004

Personligen brukar jag använda versaler till variabelnamn, för att lättare särskilja dem från vanliga kommandon.

Trädvy Permalänk
Medlem
Plats
Boden
Registrerad
Maj 2004

ursäkta, men kan du ge ett exempel. Men det är väl inte nått
som gör så att det inte funkar

Macbook Vit | Macbook Unibody | D80 | iPod Touch | iPhone 3GS

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

Nej, det fungerar både med gemenr och versaler.

Men det är mycket vanligt att variabler i script skrivs med versaler.

Ex:
WGET="/usr/bin/wget"
APT="/usr/bin/apt-get"

${APT} update
check_errs $? "There was an error in apt-get update."
sleep 5

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Stockholm, Täby
Registrerad
Jul 2001

Eftersom man aldrig kan veta om var en binär är mellan distributioner (ala /usr/local och liknande) så är det bättre att skriva följande:

WGET="`which wget`"

Visst, du ska bara använda det till Ubuntu, men det är bäst att lära sig skripta bra på en gång...

Trädvy Permalänk
Medlem
Plats
Sundbyberg
Registrerad
Maj 2003

Re: Bash script, synpunkter?

Citat:

Ursprungligen inskrivet av Filleokus

echo "Nu kommer den ultimata webbläsaren installeras"
$(apt) install ${xwindows_packages}
check_errs $? "Tyvärr så har det uppståt ett problem, kontakta sysadmin (mozilla)"

echo "Nu hälsar Filleokus dig välkommen till ett nytt Debian powerd system"
echo "Kom ihåg att genast starta om datorn"

ska vara media_packages va?

Edit:
Schysst grej annars. Sk jag ha i åtanke nästa gång det är dags att installera om..=)

Trädvy Permalänk
Medlem
Registrerad
Nov 2002
Citat:

Ursprungligen inskrivet av Sachankara
Eftersom man aldrig kan veta om var en binär är mellan distributioner (ala /usr/local och liknande) så är det bättre att skriva följande:

WGET="`which wget`"

Visst, du ska bara använda det till Ubuntu, men det är bäst att lära sig skripta bra på en gång...

Varför inte bara använda "wget" direkt isåfall? which kollar efter wget i PATH, precis som shellet skulle gjort om du bara körde det direkt.

Trädvy Permalänk
Medlem
Plats
Stockholm, Täby
Registrerad
Jul 2001
Citat:

Ursprungligen inskrivet av peritus
Varför inte bara använda "wget" direkt isåfall? which kollar efter wget i PATH, precis som shellet skulle gjort om du bara körde det direkt.

Jo, det borde väl vara mer logiskt faktiskt... Denna gång tänkte jag inte allt för långt...

Trädvy Permalänk
Medlem
Plats
under en bro
Registrerad
Dec 2001

Re: Bash script, synpunkter?

Citat:

Ursprungligen inskrivet av Filleokus

echo "Nu hälsar Filleokus dig välkommen till ett nytt Debian powerd system"
echo "Kom ihåg att genast starta om datorn"[/code]

Skulle du inte kunna ta bort det och istället logga ur root och köra startx(fe) som deras user direkt?

Du skulle också kunna köra apt-get med växlen -y;
Automatic yes to prompts; assume "yes" as answer to all prompts and run non-interactively.

Sen använder du inte ens wget så den kan du ta bort helt

Trädvy Permalänk
Medlem
Plats
Boden
Registrerad
Maj 2004

Jag ska dra in mer saker i scriptet där wget kommer användas, men för att kunna använda det så måste jag ju installera det först.

Smart det där med apt-get -y, det kommer jag köra.
Ang media package, nej det är så det heter i det scriptet men nu har jag döpt om det till xwindows package.

ok ska andra det där om wget till WGET osv..

Macbook Vit | Macbook Unibody | D80 | iPod Touch | iPhone 3GS

Trädvy Permalänk
Medlem
Plats
Höör
Registrerad
Jun 2002

För att vara lite petig bara, kontrollera dina stavfel, det är en hel del, exempelvis: "installastion", "uppståt" etc.

//fog

Citera mig för svar.
Arch Linux

Trädvy Permalänk
Medlem
Plats
Uppland
Registrerad
Jul 2003

Re: Bash script, synpunkter?

Här har du en dubbel install av samma sak. Skall inte den webläsaren ha media_packages?

echo "Nu kommer den ultimata webbläsaren installeras" $(apt) install ${xwindows_packages} check_errs $? "Tyvärr så har det uppståt ett problem, kontakta sysadmin (mozilla)" echo "Nu kommer X-grafik system att installeras" $(apt) install ${xwindows_packages} check_errs $? "Tyvärr så har det uppståt ett problem, kontakta sysadmin(x-windows)"

Mvh Dax

Server: HPE Gen8 / UNRaid 6.x.x
Brandvägg: Unifi USG Pro 4
Wifi: Unifi AP x 3

Trädvy Permalänk
Medlem
Plats
Boden
Registrerad
Maj 2004

Ojj tack så mycket såg inte det (media_packages), ska kolla mina stavfel. Det kommer en uppdaterad version snart

Macbook Vit | Macbook Unibody | D80 | iPod Touch | iPhone 3GS