如果这段代码中有空格,为什么它不起作用?

如果这段代码中有空格,为什么它不起作用?

为自己的愚蠢道歉。我试图寻找答案,但无济于事。如果以前已经回答过(很可能)那么我还没有看到它。

#!/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

相关内容