为自己的愚蠢道歉。我试图寻找答案,但无济于事。如果以前已经回答过(很可能)那么我还没有看到它。
#!/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