0
有没有人知道为什么在第一次迭代后,我不在while循环中?它曾经像昨天一样工作! (含多条线路,没有新线相同的输入文件)问题read_file在Bash中使用while循环/ sh
#!/bin/sh
FLAGS_IN=MY_TEXT_FILE_CONTAINING_LOTS_OF_LINE
while read BENCHMARK DATASET CF
do
echo "$BENCHMARK"
echo "$DATASET"
echo "$CF"
N=$((N + 1))
cd $tmp
echo "**********************************************************"
GCC_OPT="-O3"
OPT_FLAGS=$CF
###### do sth
tmp=$PWD
done < $FLAGS_IN
exit 0
调试,我可以肯定的脚本工作,直到循环精致漂亮的尽头。
为VAR'tmp'将作为'cd' CMD评估没有一个空值论点,并发送你的脚本给你的家庭目录。您不会在代码中包含任何类似“tmp =/tmp/dir”的内容,因此我们无法确定发生了什么。为什么在阅读每行后需要'cd $ tmp'?否则,如果它曾经工作,并且今天不工作,并且如果您真的**没有对脚本进行任何更改,或者将它从MSWindows ftp到Linux,那么它必须是您的数据文件。使用二进制模式的文本编辑器来查看第一行之后的内容。祝你好运。 – shellter
@shellter,tnx回复。实际上我在开始的某个地方使用了这个'tmp',而我正在移动一些目录,这就是为什么最后我想回到 – Amir