如果這段程式碼中有空格,為什麼它不起作用?

如果這段程式碼中有空格,為什麼它不起作用?

為自己的愚蠢道歉。我試著尋找答案,但無濟於事。如果以前已經回答過(很可能)那麼我還沒有看到它。

#!/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。其餘的(isyourname”name將根據使用者輸入分配給變數。

你的意思是

read -p "What is your name" name

相關內容