為自己的愚蠢道歉。我試著尋找答案,但無濟於事。如果以前已經回答過(很可能)那麼我還沒有看到它。
#!/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 將其全部分開,讀取,然後 echo。值得慶幸的是,即使有空格,這也適用。我只是好奇為什麼不會。
答案1
這是因為您的引號不是 ASCII 引號(如果您仔細觀察,“
會"
有所不同),因此它們不會阻止 shell 進行分詞。
read -p “Whatisyourname” name
提示訊息是“Whatisyourname”
。
read -p “What is your name” name
提示訊息是“What
。其餘的(is
、your
和name”
)name
將根據使用者輸入分配給變數。
你的意思是
read -p "What is your name" name