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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |