Bash 在txt文件和命令行中识别空格的方式不同

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

我正在使用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 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"