愚かなことを言って申し訳ありません。答えを見つけようとしましたが、見つかりませんでした。もし以前に答えが出ていたなら(おそらくそうですが)、私はまだその答えを見ていません。
#!/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
)。入力(x)を入力すると、次のように表示されます。
Command 'x' not found, but can be installed with: sudo snap install x
なぜこのように出てくるのか不思議です。
echo、read、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