Unix SHELL (sh) Skript Parameterprüfung auf Integer

Für unsere Technikfreaks
Benutzeravatar
Shaymin
Intern
Beiträge: 1735
Registriert: 15. Dez 2011, 20:59
Wohnort: Arkasha Stratum

Unix SHELL (sh) Skript Parameterprüfung auf Integer

Beitragvon Shaymin » 25. Mai 2017, 17:47

Moin,

eventuell kann mir jemand hier ja helfen.
Undzwar habe ich das Problem, dass ich bei einem Shellskript Einen eingabeparameter prüfen muss, ob es keine Integer-Zahl ist oder nicht.
Die Lösung muss auf jedenfall mit der normalen Shell kompatibel sein, sprich andere Interpreter wie die Bash, welche Interpreterspezifische Funktionen
benutzen sind nicht möglich.

Zwar ist laut Aufgabenstellung der Einsatz der Bash diesmal erlaubt, allerdings ist mein gesamtes Skript bereits Shell-Kompatibel geschrieben und
lediglich meine isNumber() Funktion enthält einen Bash-spezifischen Aufruf.

Code: Alles auswählen

#!/bin/bash (...) isNumber() { if [[ "$1" =~ ^\-?[0-9]+$ ]]; then #Bash nur verwendet wegen dem regulären Ausdruck hier echo "Gültige Zahl"; return 0 else echo "Ungültige Zahl"; return 1 fi }
Hat jemand eine Ahnung oder Hinweis wie man dies auch mit der bloßen Shell erreichen kann?

Code: Alles auswählen

#!/bin/sh (...) isNumber() { if [ ??? ]; then #Hier der neue Ausdruck für die Shell, oder komplett neuer Ansatz echo "Gültige Zahl"; return 0 else echo "Ungültige Zahl"; return 1 fi }
Danke an jeden der mir helfen möchte :)
Benutzeravatar
Knuckle
Beiträge: 705
Registriert: 3. Jun 2016, 07:40
Wohnort: 73***

Re: Unix SHELL (sh) Skript Parameterprüfung auf Integer

Beitragvon Knuckle » 25. Mai 2017, 22:53

ich kenn mich mit dem unix geraffel nicht aus, aber kannst du die variable nicht einfach mit .contains() oder so auf punkt oder komma überprüfen?
ich denk nicht, dass n integer als 1.0 / 1,0 geschrieben wird, sondern als 1
wenns kein contains gibt musst halt die länge der variablen ermitteln und über nen array jede stelle auf . bzw , abprüfen
Ingame bitte bei Scherboss melden
Benutzeravatar
Knuckle
Beiträge: 705
Registriert: 3. Jun 2016, 07:40
Wohnort: 73***

Re: Unix SHELL (sh) Skript Parameterprüfung auf Integer

Beitragvon Knuckle » 25. Mai 2017, 22:55

oder gehts um ne int/string abfrage?
Ingame bitte bei Scherboss melden
Benutzeravatar
Shaymin
Intern
Beiträge: 1735
Registriert: 15. Dez 2011, 20:59
Wohnort: Arkasha Stratum

Re: Unix SHELL (sh) Skript Parameterprüfung auf Integer

Beitragvon Shaymin » 26. Mai 2017, 00:19

Naja, alle Variablen in Shellskripten sind standartmäßig Stringvariablen.
Heißt man muss über ein Muster prüfen ob es nur Zahlen enthält.

- Fortgeschrittene Stringopeationen (z.b. SED) sind nicht erlaubt,(laut Aufgabenstellung)
- Als Zahl gibt jede ganzzahlige positive oder negative Zahl
In dieser Aufgabe sind fortgeschrittene Tools wie etwa perl, sed, awk und ruby nicht erlaubt.
Erlaubt sind hingegen: cat, echo, expr, test, wc, grep, head, tail, cut, sort und tee, sowie die builtin-Funktionen der sh und / oder der bash, also Schleifen, Bedingungen, etc

Zurück zu „Technik Abteilung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast