Извините за тупость. Я пытался найти ответ, но безуспешно. Если на него уже отвечали (что вполне вероятно), значит я его не видел.
#!/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, read, а затем 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