Bash 在txt文件和命令行中识别空格的方式不同
我正在使用Mac。我已经编译了一个字节码Bash 在txt文件和命令行中识别空格的方式不同,bash,whitespace,file-format,Bash,Whitespace,File Format,我正在使用Mac。我已经编译了一个字节码运行,它可以在命令行中处理字符串输入,如: ./run "Here is a text input" 为了测试run,我编写了inputs.txt,其中包含几行输入,一行表示一个输入: "input1" "This is input 2" "input 3" 下面是一个测试。sh: #!/bin/bash while IFS='' read -r line || [[ -n "$line" ]]; do echo "Text read from
运行
,它可以在命令行中处理字符串输入,如:
./run "Here is a text input"
为了测试run
,我编写了inputs.txt
,其中包含几行输入,一行表示一个输入:
"input1"
"This is input 2"
"input 3"
下面是一个测试。sh
:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line";
./run $line
done < inputs.txt
#/bin/bash
而IFS=''读-r行| |[[-n“$line”];做
echo“从文件中读取的文本:$line”;
/运行$line
完成
问题是,尽管在命令中测试同一行是可行的,但对包含空格的输入行的测试失败
所以我想,当空间在inputs.txt和命令行中时,它的解释是不一样的
有人知道如何在inputs.txt
中使用与命令行中相同的方式来解释空格吗?也许我应该更改inputs.txt的格式吗?我想您只需要更改一下
./run $line
到
这样,在调用run之前,$line
的使用就不会被分割成参数。可能是一个引用问题。去掉输入文件中的引号,然后将它们添加到脚本:/run“$line”
./run "$line"