Kirjoittaja Aihe: Komentojen ehdollistaminen  (Luettu 2693 kertaa)

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Komentojen ehdollistaminen
« : 30.07.12 - klo:16.49 »
Lainaus
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:

Koodia: [Valitse]
[ -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:

Koodia: [Valitse]
[ -d  "/home/liisa" ]  ||  sudo mkdir "/home/liisa"
eli testataan onko tuo hakemisto olemassa  --> epäonnistui eli jatketaan seuraavaan komentoon ja luodaan se hakemisto.   


« Viimeksi muokattu: 30.07.12 - klo:17.05 kirjoittanut ajaaskel »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Komentojen ehdollistaminen
« Vastaus #1 : 30.07.12 - klo:17.02 »
OK! Toi oli hyvä tietää, sillä tapanani on ollut ajaa päivitykset
Koodia: [Valitse]
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 &&

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Komentojen ehdollistaminen
« Vastaus #2 : 30.07.12 - klo:17.13 »
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.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Komentojen ehdollistaminen
« Vastaus #3 : 05.08.12 - klo:09.07 »
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?

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Komentojen ehdollistaminen
« Vastaus #4 : 05.08.12 - klo:11.17 »
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.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3401
    • Profiili
Vs: Komentojen ehdollistaminen
« Vastaus #5 : 05.08.12 - klo:22.11 »
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.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.