이 코드에 공백이 있으면 왜 작동하지 않나요?

이 코드에 공백이 있으면 왜 작동하지 않나요?

멍청해서 사과드립니다. 나는 답을 찾으려고 노력했지만 소용이 없었습니다. 이전에 답변이 있었다면 (아마도) 본 적이 없는 것입니다.

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

왜 이렇게 나오는지 궁금합니다.

에코, 읽기, 에코로 모두 분리할 수 있다는 것을 알고 있습니다. 고맙게도 공백이 있어도 작동합니다. 왜 이것이 안되는지 궁금합니다.

답변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

관련 정보