简单的问题。
我的脚本要求用户输入,然后尝试对该输入执行某些操作。但是当使用read
命令时,我只得到用户输入的第一个单词(由空格分隔)。无论我是否输入带引号的响应,这似乎都会发生。最好不要求用户在引号中键入其消息。
以下是代码:
echo "what is your commit message?"
read commitmessage
如果处于put:这是自动提交或“这是自动提交”
Bash只将$commitmessage
理解为"This"
感谢您的帮助。
答案 0 :(得分:0)
问题不是read
:我打赌你在使用它时不引用变量
$ read -p "message? " msg
message? hello world this is a message
$ echo "$msg"
hello world this is a message
使用变量时,请务必引用它:"$msg"
否则,shell将在空白(或$ IFS中的任何内容)上拆分值
一个例子:
$ function first_word { echo "$1"; }
$ first_word "$msg"
hello world this is a message
$ first_word $msg
hello