Disculpas por ser tonto. Intenté encontrar una respuesta, pero fue en vano. Si ya se ha respondido antes (lo cual es probable), entonces no lo he visto.
#!/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 fragmento de código no funciona. Imprime la primera palabra como un mensaje ( What
). Después de ingresar la entrada (x), dirá
Command 'x' not found, but can be installed with: sudo snap install x
Me pregunto por qué sale así.
Sé que podría separarlo todo con eco, leer y luego hacer eco. Afortunadamente, eso funciona incluso con espacios. Solo tengo curiosidad por saber por qué esto no es así.
Respuesta1
Esto se debe a que las comillas no son comillas ASCII ( “
y "
son diferentes si miras más de cerca), por lo tanto, no evitan que el shell divida las palabras.
read -p “Whatisyourname” name
El mensaje de aviso es “Whatisyourname”
.
read -p “What is your name” name
El mensaje de aviso es “What
. El resto ( is
, your
y ) se asignaría a variables según la entrada del usuario name”
.name
Te refieres a
read -p "What is your name" name