Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: ajaaskel - 30.07.12 - klo:16.49
-
Vähän menee offtopic mutta mitä eroa on kun päätteesä laittaa käskyjä putkeen puolipisteellä ja &&?
Puolipisteellä tehdään seuraava komento aina, && jälkeen taasen tehdään vain jos se edellinen komento meni virheittä.
komento1 ; komento2 ; komento3 <--- tehdään peräkkäin oli edellisen komennon tulos mikä hyvänsä
komento1 && komento2 && komento3 <-- seuraava tehdään vain jos edellinen ei ilmoittanut virhettä
Tuosta on joitakin käteviä muunnoksia:
[ -d "/home/liisa" ] && echo "Hakemisto on olemassa"
Testataan onko hakemisto olemassa ja tehdään oikeanpuoleinen komento jos löytyi.
Asia voidaan myös kääntää. Käyttämällä || "tuplaputkea" saadaan vastakkainen toiminta: Jatketaan letkaa eteenpäin vain jos edellinen epäonnistuu. Jos ajatellaan tuota edellistä esimerkkiä niin voitaisiin sanoa vaikkapa:
[ -d "/home/liisa" ] || sudo mkdir "/home/liisa"
eli testataan onko tuo hakemisto olemassa --> epäonnistui eli jatketaan seuraavaan komentoon ja luodaan se hakemisto.
-
OK! Toi oli hyvä tietää, sillä tapanani on ollut ajaa päivitykset
sudo apt-get update; sudo apt-get upgrade; sudo apt-get dist-upgrade; sudo reboot -r
ja siinä on joskus ollut vähän ongelmia. Eli taidan muuttaa puolipisteen &&
-
Joo, nämä ovat hauskoja juttuja kun vain muistaa komentoja peräkkäin laittaessa:
<K1> && <K2> && <K3> && <K4>....... päästään läpi kun edellisen tulos on "onnistui"
<K1> || <K2> || <K3> || <K4>....... päästään läpi kun edellisen tulos on "epäonnistui"
Noiden välimerkkien && sekä || kohdalla aina tarkastetaan automaattisesti miten kävi.
-
Joo, nämä ovat hauskoja juttuja kun vain muistaa komentoja peräkkäin laittaessa:
<K1> && <K2> && <K3> && <K4>....... päästään läpi kun edellisen tulos on "onnistui"
<K1> || <K2> || <K3> || <K4>....... päästään läpi kun edellisen tulos on "epäonnistui"
Noiden välimerkkien && sekä || kohdalla aina tarkastetaan automaattisesti miten kävi.
Tarvitseeko muuten nuo ohjausmerkit tai antavatko jotain erityistä etua?
-
Joo, nämä ovat hauskoja juttuja kun vain muistaa komentoja peräkkäin laittaessa:
<K1> && <K2> && <K3> && <K4>....... päästään läpi kun edellisen tulos on "onnistui"
<K1> || <K2> || <K3> || <K4>....... päästään läpi kun edellisen tulos on "epäonnistui"
Noiden välimerkkien && sekä || kohdalla aina tarkastetaan automaattisesti miten kävi.
Tarvitseeko muuten nuo ohjausmerkit tai antavatko jotain erityistä etua?
Tarkoitatko < ja > ? Eivät oikeastaan kuulu tuohon vaan merkkaavat komentoa eli esim. <K1> korvataan komennolla. && tarkoittaa and:ia ja || tarkoittaa or:ia, joten ihan sillä periaatteella tuo systeemi toimii. Puolipiste ; tarkoittaa rivinvaihtoa.
-
Olin vähän laiska kirjoittamaan eli kun tarkoitin "komento1" niin lyhentelin sen "<K1>" jne. eli juuri kuten Tomin sanoi, itse noita väkäsiä ei kirjoiteta sinne ollenkaan.