Bis hier kann ich auch folgen!
Ich auch ☺
Das klappt wunderbar!
Aber was bekommst Du, wenn Du
1 2 b=$d echo $beingibst? Das gleiche wie bei
Das kann ich aber nicht mehr nachvollziehen!
Das oben klappt noch!
1 2 d=So 3. Jul 23:27:12 CEST 2016 echo $doder nicht?
Aber das hier nicht mehr!
Nun - bei mir funktioniert auch nicht anders. Ich kann aber nicht die Spezifikation nennen, aus der das hervorgeht. Ich wusste, bevor ich es am 3.7. versuchte, nicht, dass b=$d funktionieren würde, während ich schon wusste, dass "d=So 3. Jul 23:27:12 CEST 2016" nicht funktionieren würde.
Da kommt beim setzen der Variable folgendes:
1 2 $ d=So 3. Jul 23:27:12 CEST 2016 3.: Befehl nicht gefunden.Was ja auch logisch ist, hier muss es dann heißen:
1
$ d="So 3. Jul 23:27:12 CEST 2016"oder?
Ja. Oder
1 2 3 4 5 | d='So 3. Jul 23:27:12 CEST 2016' # oder d=So" "3." "Jul" "23:27:12" "CEST" "2016 # oder d=So\ 3." Jul 23:27:12 CEST "2016 |
oder eine von zig anderen Varianten des gleichen Typs.
Womit ich aber immer wieder auf die Nase falle ist folgendes, und das kann ich nicht erklären!
1 2 3 if [ -n $var ] ; then ... fiKlappt nicht!
1 2 3 if [ -n "$var" ] ; then ... fiWenn ich es so mache aber schon, warum?
Und wenn ich in "man test" nachlese steht da:-n STRING the length of STRING is nonzeroHier ist wieder die Rede von einem String.
Was daran ist Dir daran unklar?
1 2 3 4 5 6 7 8 | echo foo${var}baz foobaz if [ -n "$var" ] ; then echo laenge null; else echo laenge nicht null; fi laenge nicht null if [ -n $var ] ; then echo laenge null; else echo laenge nicht null; fi laenge null if [ -n ] ; then echo laenge null; else echo laenge nicht null; fi laenge null |
und:
1 2 3 4 5 6 7 8 9 10 | t201:~ > var="" t201:~ > if [ -n $var ] ; then echo laenge null; else echo laenge nicht null; fi laenge null t201:~ > x="$var" t201:~ > echo ${#var} 0 t201:~ > echo ${#x} 0 t201:~ > if [ -n "$var" ] ; then echo laenge null; else echo laenge nicht null; fi laenge nicht null |
Das verstehe ich auch nicht, da steige ich auch aus. Ich merke mir lediglich, dass da Gefahren lauern, und prüfe dann solche Fälle, wenn sie relevant werden, was aber eigentlich so gut wie nie der Fall ist.
Ich hoffe, dass Du nicht böse bist!
Wie sollte ich? Niemand zwingt mich auf Fragen zu antworten. ☺
Denn ich bin wirklich sehr dankbar für solche Hinweise, sie machen das leben sehr viel einfacher!
Links wird es leichter und rechts wird es schwerer. Oder vorne/hinten. Diese -n - Phänomen ist mir auch neu und droht mich zu verwirren - daher wird hier nix einfacher, außer vielleicht dass es zur Faustformel beiträgt, komplexe Programme nicht mit der Shell zu schreiben.
Denn wenn niemand etwas sagt macht man es ja immer weiter falsch! OK, in diesem Fall funktioniert es sowohl als auch, aber dass ist meist nicht so!
Ja, meist funktioniert es weder so, noch so. 😉