Entschuldigen Sie, dass ich so dumm bin. Ich habe versucht, eine Antwort zu finden, aber ohne Erfolg. Wenn die Frage schon einmal beantwortet wurde (was wahrscheinlich ist), dann habe ich sie nicht gesehen.
#!/bin/bash
read -p “Whatisyourname” name
echo "Hello $name"
^This piece of code does work.
#!/bin/bash
read -p “What is your name” name
echo "Hello $name"
^Dieser Code funktioniert nicht. Er druckt das erste Wort als Eingabeaufforderung ( What
). Nach der Eingabe von (x) wird angezeigt
Command 'x' not found, but can be installed with: sudo snap install x
Ich frage mich nur, warum es so herauskommt.
Ich weiß, dass ich alles einfach mit „echo“, „read“ und dann „echo“ trennen könnte. Das funktioniert zum Glück sogar mit Leerzeichen. Mich interessiert nur, warum das nicht funktioniert.
Antwort1
Das liegt daran, dass Ihre Anführungszeichen keine ASCII-Anführungszeichen sind ( “
und "
bei genauerem Hinsehen anders aussehen). Daher verhindern sie nicht die Worttrennung durch die Shell.
read -p “Whatisyourname” name
Die Eingabeaufforderung lautet “Whatisyourname”
.
read -p “What is your name” name
Die Eingabeaufforderung lautet “What
. Der Rest ( is
, your
, name”
und name
) wird entsprechend der Benutzereingabe den Variablen zugewiesen.
Was meinen Sie
read -p "What is your name" name