|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
[BASH] Identificare numero intero
Ho un programma da fare in BASH, una semplice calcolatrice che, preso come argomenti 3 parametri ( numero1, operatore, numero2 ) mi deve fare la corrispondente operazione. Ad esempio:
Codice:
./scrip.sh 1 + 2 L'esercizio tuttavia chiede due cose: 1. Controllare che il primo e il secondo argomento siano numeri interni 2. Controllare che l'operatore sia uno di questi caratteri: + - x / Ho difficoltà a fare il primo ( il secondo non c'ho ancora provato ). Questo è il codice che sto cercando di utilizzare: Codice:
if [[ "$1" =~ ?([0-9]) ]] then #switch/case per fare le operazioni else echo "NAN" fi exit Il massimo che sono riuscito ad ottenere è: mettendo un interno stampa, ma non entra nell'else se metto una lettera... Come si fa? Poi chiaramente il controllo è incompleto perchè dovrei aggiungerci un pure il controllo su $3, ma un passo alla volta...
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2011
Città: Genova
Messaggi: 93
|
Non l'ho provato, ma:
if [ "$1" -eq "$1" ] dovrebbe funzionare in quanto fa un confronto fra interi. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Se scrivo: Codice:
./script.sh 1 + 2 Ma se scrivo: Codice:
./script.sh a + 2 Nonostante il mio if sia strutturato nel seguente modo: Codice:
if [ "$1" -eq "$1" ] #switch/case else echo "Nan" fi exit
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
|
#4 |
|
Junior Member
Iscritto dal: Feb 2012
Messaggi: 4
|
nessun altro suggerimento?
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:47.




















