üks shelli skript

Linuxi tarkvaraliste küsimustega seotud foorum

Moderaator: Moderaatorid

Vasta
libre
Pingviini aktivist
Pingviini aktivist
Postitusi: 205
Liitunud: 27.05.2018, 07:21

üks shelli skript

Postitus Postitas libre »

tegin shelli skripti, mis töötab kuid tühiku puhul teeb errorit ja mitmest lausest ei saa aru. Kahjuks rohkem lmõistus ei võta..

Kood: Vali kõik

#!/bin/sh
echo "
      robot v0.2
      =======================
      
    ";


echo "sisesta: $jutt1 "
 read -r jutt1 

if [ $jutt1 = "tere" ]; then
    printf "tere " ; else


if [ $jutt1 = "tänan" ]; then
    printf "võta heaks! "; else
    

if [ $jutt1 = "kakajunn"  ]; then
    printf "väljaheide! "; else


if [ $jutt1 = $jutt1 ]; then
    printf "ei saanud aru ";


fi 
  fi
fi
fi

GNU/Linux ja and free
Kasutaja avatar
imre
Vana Pingviin
Vana Pingviin
Postitusi: 2653
Liitunud: 16.08.2005, 03:00

Postitus Postitas imre »

Säästa ennast sellest if fi põrgust, kasuta case statementi
Palju lihtsam, ülevaatlikum süntaks

Kood: Vali kõik

#!/bin/sh
  echo "sisesta: "
  read INPUT
  case "$INPUT" in
        tere) echo "tere";;
        tänan)echo "võta heaks!";;
        kakajunn) echo "väljaheide";;
        *) echo "midagi ei sisestatud";;
  esac
Enne teema püstitamist kasutage OTSINGUT
Küsi targalt: Infot siit!
Kui aru ei saa, siis küsi.
libre
Pingviini aktivist
Pingviini aktivist
Postitusi: 205
Liitunud: 27.05.2018, 07:21

Postitus Postitas libre »

vast ikka "midagi ei sisestatud" asemele "ei saanud aru."

Kuid mitmest lausest ei saagi see aru.. pean edasi mõtlema..
AGA JUBA PAREM!

LOODAME, et kellelgi foorumi külastajatest tekkib linuxi ja linuxi kesta kasutamises huvi!
GNU/Linux ja and free
Kasutaja avatar
Gomi
Pingviini aktivist
Pingviini aktivist
Postitusi: 182
Liitunud: 24.12.2017, 12:06

Postitus Postitas Gomi »

Mitme sõna peale tekib error nendes

Kood: Vali kõik

[ $jutt1 = "tere" ]
plokkides. Näiteks sisendiga "üks kaks" oleks see siis

Kood: Vali kõik

[ üks kaks = "tere" ]
, kus "üks" oleks liigne argument. Seevastu

Kood: Vali kõik

[ "$jutt1" = "tere" ]
puhul seda ei juhtu.
Vasta