bash - 带有空格的 Bash 输入字符串
问题描述
read
当用户需要输入带有空格的数据时,我很难理解我们如何处理 bash输入。
有人可以提供一个简单的解释吗?
read -p 'Artist: ' ARTIST
read -p 'Album: ' ALBUM
read -p 'Genre: ' GENRE
一个单词艺术家(Bjork)可以正常工作,但是一旦您尝试输入名字和姓氏,整个系统就会崩溃。
我猜我能够做到这一点的唯一方法是使用循环单独处理每个输入,然后将字符串集中到一个具有完整空格的变量中。
解决方案
您的声明中似乎有错字read
。终止引号 of 和变量占位符之间应该有一个空格-p
,没有相同的 read 会错误地将提示消息压缩为
read -p 'Artist: ARTIST'
它应该在哪里
read -p 'Artist: ' ARTIST
# ^^^^
您可以看到第二个按预期工作。此外,使用正确的引号,您的脚本应该可以按预期工作
bash script.sh
Artist: John Lenon
Album: The Beatles
将结果按预期放置。
read
自从第一篇文章引用的语句有问题以来,该问题已被编辑。我最初的答案是为了回答这个问题。从那以后,这个问题被修改了,看起来更像是Bash:在命令行上保留带空格输入的字符串?
推荐阅读
- python - 使用 Python scipy 验证 t 检验结果
- c++ - C ++如何将char数组转换为字节向量(向量
) - arrays - 在handlebars.js 上,如何在父级使用#first?
- python - 优化多边形搜索
- javascript - 将 sweetalert2 与 node.js 和 express.js 一起使用
- python - Python - 脚本挂在 open() 函数上
- safari - iOS 12 Safari 自动滚动以自动填充密码
- sql-server - 如何在 SQL Server 中查找特定 plan_handle 或 sql_hash 的所有会话
- css - 无法使用 rmarkdown::render() 将图形放大到 fig.height=12、fig.width=10 到 html
- python - FeatureTools:处理多对多关系