Bash不会在for循环中打印带问号的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash不会在for循环中打印带问号的字符串相关的知识,希望对你有一定的参考价值。

我有一个具有以下内容的文本文件,

My test
strings
that dont have
a question 
mark except this line?
but not
these two

并且当我尝试使用例如bash读取bash文件时>

ph_lines="/path/to/file.txt"
for l in $(cat "$ph_lines") 
do
    echo "$l"
done

除了输出中所有带有问号的字符串,所有内容都会打印在输出上。

我曾尝试使用while read line; echo line; done < $filename,但仍然存在相同的问题

唯一可以捕获所有行的方法是当我使用sed删除问号时。

for l in $(cat $ph_lines | sed $'s/\?//' )

谢谢!

我有一个包含以下内容的文本文件,我的测试字符串除此行外没有问号?但不是这两个,当我尝试使用例如...

答案

要正确读取文件,请使用Read a file line by line assigning the value to a variable中的示例:

以上是关于Bash不会在for循环中打印带问号的字符串的主要内容,如果未能解决你的问题,请参考以下文章

关于带按钮的模板字符串循环的建议

在 bash for 循环中使用命令行参数范围打印包含参数的括号

带字符串的 For 循环不起作用

如何使用for循环将文本文件中的一行字符串作为Bash中另一个脚本的单独变量传递[重复]

如果没有打印,for循环如何工作

在 Bash 中,如何查看字符串是不是不在数组中?