Desculpas por ser burro. Tentei encontrar uma resposta, mas sem sucesso. Se já foi respondido antes (o que é provável), então não o vi.
#!/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"
^Este trecho de código não funciona. Ele imprime a primeira palavra como um prompt ( What
). Depois de inserir a entrada (x), ele dirá
Command 'x' not found, but can be installed with: sudo snap install x
Só estou me perguntando por que isso acontece assim.
Eu sei que poderia simplesmente separar tudo com eco, ler e depois ecoar. Isso funciona mesmo com espaços, felizmente. Estou apenas curioso para saber por que isso não acontece.
Responder1
Isso ocorre porque suas aspas não são aspas ASCII ( “
e "
são diferentes se você olhar mais de perto), portanto, elas não impedem a divisão de palavras pelo shell.
read -p “Whatisyourname” name
A mensagem de alerta é “Whatisyourname”
.
read -p “What is your name” name
A mensagem de alerta é “What
. O restante ( is
,, e ) seria atribuído a variáveis de acordo com a entrada do usuário your
.name”
name
Você quer dizer
read -p "What is your name" name