당신의 어리석음에 대해 사과하세요. 나는 답을 찾으려고 노력했지만 아무 소용이 없었습니다. 이전에 답변이 있었다면 (아마도) 본 적이 없는 것입니다.
#!/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
)로 인쇄합니다. input(x)를 입력하면 다음과 같이 표시됩니다.
Command 'x' not found, but can be installed with: sudo snap install x
왜 이런 결과가 발생하는지 알고 싶습니다.
나는 echo를 사용하여 모든 것을 분리하고 읽은 다음 에코할 수 있다는 것을 알고 있습니다. 고맙게도 이것은 공백에서도 작동합니다. 왜 이것이 작동하지 않는지 궁금합니다.
답변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