solaris echo“[”字符问题

时间:2010-02-01 11:04:09

标签: bash

我有bash脚本,例如


for i in `echo a [ matched.lines`
do
echo $i
done

为什么输出以下脚本

  

     

[

     

matched.lines


我想要输出文本

  

a [matched.lines


我该怎么做

感谢您的帮助

4 个答案:

答案 0 :(得分:2)

脚本分别回显每个标记。在echo -n $i内使用do ... done

答案 1 :(得分:0)

我已经用sed全局替换将''字符替换为'',并且在输出脚本时没有新行感谢帮助

答案 2 :(得分:0)

使用shell读取文件,在读取循环时使用

while read -r loop
do
 case "$line" in 
  *]* ) echo $line;;
 esac
done <"file"

答案 3 :(得分:0)

很抱歉,但这不会做你想要的。您的for循环使用空格作为其参数的分隔符。这将导致每个项目在单独的行上回显。添加-n在此处不起作用,因为您不会在行的末尾获得\ n。老实说,我不知道你在这里尝试做什么。如果你只想回复这个“a [matched.lines”作为字符串,你可以这样做:


for i in "a [ matched.lines";do
  echo $i
done

但我觉得你会误解如何使用for循环......