leerzeichen in case ausfindig machen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

leerzeichen in case ausfindig machen

Beitrag von OldGod78 » 11.02.2017 16:38:22

hallo , wie mache ich ein leerzeichen in case aus ? das geht nicht :/

Code: Alles auswählen

case $string in
	"* *")

TomL

Re: leerzeichen in case ausfindig machen

Beitrag von TomL » 11.02.2017 16:50:50

Code: Alles auswählen

[[ "leerzeichen enthalten" =~ " " ]] && echo "ja" || echo "nein"
ja
[[ "leerzeichenenthalten" =~ " " ]] && echo "ja" || echo "nein"
nein
Da würde ich Dir aber raten, einen anderen Weg zu gehen. So rein gefühlsmäßig glaube ich, dass Du hier hinsichtlich sauberer Programmierung einen Fauxpas begehst... aber sachlich erklären kann ich das Gefühl nicht.

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: leerzeichen in case ausfindig machen

Beitrag von OldGod78 » 11.02.2017 16:56:09

also das geht nicht :

Code: Alles auswählen

while true
do
	echo "name ? "
	read name
	if [[ $name =~ " " ]]; then
		echo "leer!"
	else
		break
	fi
done

TomL

Re: leerzeichen in case ausfindig machen

Beitrag von TomL » 11.02.2017 16:59:47

" " ist nicht leer, sondern ein Leerzeichen
"" ist ein leerer String

-n und -z sind die If-Condititions, die du in den Links aus meinem Vorposting nachlesen kannst.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: leerzeichen in case ausfindig machen

Beitrag von Meillo » 12.02.2017 17:02:42

OldGod78 hat geschrieben:hallo , wie mache ich ein leerzeichen in case aus ? das geht nicht :/

Code: Alles auswählen

case $string in
	"* *")
Aber so:

Code: Alles auswählen

*" "*)
;-)


(Mal ganz grundsaetzlich: Du stellst recht viele Fragen zum grundsaetzlichen Shellscripten, OldGold78. Es waere sicher sinnvoll, wenn du dich beim Shellscripten nicht bloss so ad-hoc weiterhangeln wuerdest, sondern dich entscheidest, mal strukturiert die Grundlagen zu lernen, indem du ein paar Tutorials durcharbeitest oder Buecher zur Shell liest. Das wird dir enorm viel bringen. Wenn du dir naemlich die Grundkonzepte nie strukturiert aneignest, dann wird dieses Trial'n'Error auch in Zukunft weitergehen. Darum: Lerne dir selbst zu helfen ... indem du von unten (statt von oben) anfaengst. Du scheinst ja genug Interesse daran zu haben. Und der Aufwand zahlt sich schnell aus.)
Use ed once in a while!

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: leerzeichen in case ausfindig machen

Beitrag von breakthewall » 17.02.2017 06:56:17

OldGod78 hat geschrieben:

Code: Alles auswählen

case $string in
Man sollte Variablen und Parameter stets in Doublequotes setzen, um Probleme mit Pfaden, Strings und Dateinamen hinsichtlich interpretierter Zeichen zu vermeiden, wie auch weiteren Sachverhalten. Und je nach Inhalten die verarbeitet werden, können daraus mitunter erhebliche Sicherheitslücken entstehen.

Etwas Lernmaterial: http://mywiki.wooledge.org/BashPitfalls

Antworten