あなたの愚かさについて謝罪してください。私は答えを見つけようとしましたが、役に立ちませんでした。以前に答えがあったら(おそらく)見たことがないのです。
#!/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"
^ このコードは機能しません。最初の単語をヒント(What
)で印刷します。 input(x) と入力すると、次のように表示されます。
Command 'x' not found, but can be installed with: sudo snap install x
なぜこのような結果が発生するのか知りたいです。
私はechoを使ってすべてを分離して読んでからエコーすることができることを知っています。ありがたいことに、これは空白でも機能します。なぜこれがうまくいかないのだろうか。
答え1
これは、引用符がASCII引用符ではないためです(詳しく見ると異なります)。したがって、シェルは単語の分離を防ぐことができません“
。"
read -p “Whatisyourname” name
プロンプトメッセージはです“Whatisyourname”
。
read -p “What is your name” name
プロンプトメッセージはです“What
。残り(is
、、your
およびname”
)は、name
ユーザー入力に従って変数に割り当てられます。
はい、意味
read -p "What is your name" name