Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Transferurile de active intre bro...

Solutie amenajare interior apartm...

UST.FR vs NQSE.DE (ETF pe Nasdaq)

Autoturismele BMW nu semnalizeaza...
 Reparatie VFD

ETF termen lung VWCE vs VUAA.

Doua cabluri, o priza

Cele mai verzi zone din Capitala ...
 Igienizare instalatie climatizare

Topologie retea si alegere echipa...

UI aer conditionat porneste si se...

Vodafone Tv+
 Variante incalzire pentru un apar...

Bataie ritmica la viteza resimtit...

Poza necunoscuta.

panou de sigurante la casa
 

Folosirea scripturilor externe

- - - - -
  • Please log in to reply
4 replies to this topic

#1
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
Încerc să lucrez cu un script extern și am ceva simplu de genul..

functii

#!/bin/bash
suma()
{
		if [[ "$#" -ge 3 ]]
		then   
				echo "Ai introdus prea multi parametri."
				exit 1
		elif [[ $# -eq 0 || $# -eq 1 ]]
		then
				echo "Prea putin parametri"
				exit 1
		fi
				echo "$[$1+$2]"
}


main (scriptul pe care îl execut eu)

source functii.sh
suma $1 $2


După cum vă dați seama încerc să adun două numere care sunt date ca parametri.
Problema e la început când verific dacă sunt mai mulți de 3 parametri, atunci îmi face tot suma în loc să-mi afișeze mesajul.

#2
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 399,717
  • Înscris: 08.10.2015
Dude, da asta e problema de logica pe care ii pune in dificultate pe toti... Tu testezi daca _functia_ ta are un numar de argumente diferit de 2 si afisezi niste mesaje in functie de caz. Problema e ca tu apelezi functia cu 2 parametrii deci toata polologhia de mai jos nu face nimic:

View Postworm94, on 13 martie 2015 - 20:55, said:

if [[ "$#" -ge 3 ]]
			 then
							 echo "Ai introdus prea multi parametri."
							 exit 1
			 elif [[ $# -eq 0 || $# -eq 1 ]]
			 then
							 echo "Prea putin parametri"
							 exit 1
			 fi


Verificarile efectuate fiind:
+ [[ 2 -ge 3 ]]
+ [[ 2 -eq 0 ]]
+ [[ 2 -eq 1 ]]


Singura modificare pe care trebuie sa o faci este:
suma $@
si face ce trebuie
ghost@Shouryuu tmp $ bash b.sh 1
Prea putin parametri
ghost@Shouryuu tmp $ bash b.sh 1 2
3
ghost@Shouryuu tmp $ bash b.sh 1 2 3
Ai introdus prea multi parametri.
ghost@Shouryuu tmp $ bash b.sh 123
Prea putin parametri
ghost@Shouryuu tmp $ bash b.sh 123 32
155
ghost@Shouryuu tmp $ bash b.sh 123 32 435 3412
Ai introdus prea multi parametri.
ghost@Shouryuu tmp $

Edited by MembruAnonim, 14 March 2015 - 15:35.


#3
shogun1

shogun1

    Cranky old n00b ☯

  • Grup: Senior Members
  • Posts: 7,542
  • Înscris: 31.01.2009
Mutat de pe aria Linux.

#4
worm94

worm94

    Member

  • Grup: Members
  • Posts: 266
  • Înscris: 02.01.2015
Mersi mult, de asta nu mi-am dat sema și am înebunit if-urile alea.
Mulțumesc mult încă o dată.:)

#5
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 399,717
  • Înscris: 08.10.2015
Cu placere.

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate