加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash:保留字符串,在命令行输入空格?

发布时间:2020-12-16 01:50:17 所属栏目:安全 来源:网络整理
导读:参见英文答案 I just assigned a variable,but echo $variable shows something else????????????????????????????????????6个 我想允许用空格捕获字符串,以便: echo -n "Enter description: "read inputecho $input 会产生: Enter description: My wonder
参见英文答案 > I just assigned a variable,but echo $variable shows something else????????????????????????????????????6个
我想允许用空格捕获字符串,以便:

echo -n "Enter description: "
read input
echo $input

会产生:

> Enter description: My wonderful description!
> My wonderful description!

可能?

解决方法

需要担心的主要问题是,当您引用变量而不将其括在双引号中时,shell会进行单词拆分(在有空格或其他空白字符的地方将其拆分为多个单词),以及通配符扩展.解决方案:每当引用变量时使用双引号(例如echo“$input”).

其次,read将修剪前导和尾随空格(即输入开头和/或末尾的空格).如果您关心这一点,请使用IFS = read(这实际上消除了它对空白的定义,因此不会修剪任何内容).您可能还想使用read的-r(“raw”)选项,因此它不会尝试将行末尾的反斜杠解释为延续字符.

最后,我建议使用read的-p选项来提供提示(而不是echo -n).

通过所有这些更改,您的脚本如下所示:

IFS= read -r -p "Enter description: " input
echo "$input"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读