txt 文件和命令行中的空格识别方式不同
Spaces are not recognised in the same way in a txt file and in a command line
我正在使用 Mac。我已经编译了一个字节码 run
,它可以处理命令行中的字符串输入,例如:
./run "Here is a text input"
为了测试run
,我写了inputs.txt
,其中包含多行输入,一行代表一个输入:
"input1"
"This is input 2"
"input 3"
还有,这里是 test.sh
:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line";
./run $line
done < inputs.txt
问题是,包含 space 的输入行测试失败,尽管在命令中测试同一行有效。
所以我猜,space 在 inputs.txt
和命令行中的解释不同。
有谁知道如何使 inputs.txt
中的 space 的解释方式与在命令行中的解释方式相同?也许我应该更改 inputs.txt
?
的格式
我认为你只需要改变
./run $line
至
./run "$line"
这样,在调用 运行 之前,$line
的使用不会被拆分成参数。
我正在使用 Mac。我已经编译了一个字节码 run
,它可以处理命令行中的字符串输入,例如:
./run "Here is a text input"
为了测试run
,我写了inputs.txt
,其中包含多行输入,一行代表一个输入:
"input1"
"This is input 2"
"input 3"
还有,这里是 test.sh
:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line";
./run $line
done < inputs.txt
问题是,包含 space 的输入行测试失败,尽管在命令中测试同一行有效。
所以我猜,space 在 inputs.txt
和命令行中的解释不同。
有谁知道如何使 inputs.txt
中的 space 的解释方式与在命令行中的解释方式相同?也许我应该更改 inputs.txt
?
我认为你只需要改变
./run $line
至
./run "$line"
这样,在调用 运行 之前,$line
的使用不会被拆分成参数。