我有两个几乎相同的bash脚本,一个可以正常工作,而另一个则不能,我无法弄清楚发生了什么。以下是这两个脚本:
这个可以正常工作:
#!/bin/bash
CURDIR=$HOME/Documents/Development/road/Earthmoving
TOL=0.05
echo -e "\nRunning Unit Tests"
echo -e "------------------\n"
for infile in $CURDIR/utest/*.csv
do
file=$(basename $infile .csv)
echo -n " Test $file"
value=`$CURDIR/Release/earthmove -f $infile`
res=`cat $CURDIR/utest/$file.res`
if [ "$(echo "$res+$TOL*$res >= $value && $res-$TOL*$res <= $value" | bc)" -eq 1 ]; then
echo -e "\t\t PASSED."
else
echo -e "\t\t FAILED."
fi;
done
echo ""
但是这个会给我各种错误:
#!/bin/bash
CURDIR=$HOME/Documents/Development/road/Vertical
TOL=0.05
echo -e "\nRunning Unit Tests"
echo -e "------------------\n"
for infile in $CURDIR/utest/*.csv
do
file=$(basename $infile .csv)
echo -n " Test $file"
value=`$CURDIR/Release/vertical -f $infile`
res=`cat $CURDIR/utest/$file.res`
if [ "$(echo "$res+$TOL*$res >= $value && $res-$TOL*$res <= $value" | bc)" -eq 1 ]; then
echo -e "\t\t PASSED."
else
echo -e "\t\t FAILED."
fi;
done
echo ""
除了文件夹名称(Earthmoving 和 Vertical)和程序名称(earthmove 和 vertical)之外,这两个文件是完全相同的。我知道这一点是因为我通过复制和粘贴第一个文件创建了第二个文件。运行第二个脚本会导致以下结果:
Running Unit Tests
------------------
Test flatroad(standard_in) 1: illegal character: S
(standard_in) 1: syntax error
(standard_in) 1: illegal character: :
(standard_in) 2: illegal character: S
(standard_in) 2: illegal character: :
(standard_in) 2: syntax error
(standard_in) 2: illegal character: N
(standard_in) 2: illegal character: :
(standard_in) 2: illegal character: I
(standard_in) 2: illegal character: :
(standard_in) 2: illegal character: :
(standard_in) 2: illegal character: O
(standard_in) 2: illegal character: :
(standard_in) 3: illegal character: P
(standard_in) 3: illegal character: :
(standard_in) 3: syntax error
(standard_in) 3: illegal character: M
(standard_in) 3: illegal character: :
(standard_in) 3: illegal character: H
(standard_in) 3: illegal character: :
(standard_in) 3: illegal character: :
(standard_in) 4: illegal character: P
(standard_in) 4: illegal character: :
(standard_in) 4: syntax error
(standard_in) 4: illegal character: M
(standard_in) 4: illegal character: :
(standard_in) 4: illegal character: H
(standard_in) 4: illegal character: :
(standard_in) 4: illegal character: :
(standard_in) 5: syntax error
(standard_in) 5: illegal character: :
(standard_in) 6: illegal character: P
(standard_in) 6: illegal character: :
(standard_in) 6: illegal character: M
(standard_in) 6: syntax error
(standard_in) 6: illegal character: :
(standard_in) 7: syntax error
(standard_in) 7: illegal character: :
(standard_in) 8: illegal character: P
(standard_in) 8: illegal character: :
(standard_in) 8: syntax error
(standard_in) 8: illegal character: M
(standard_in) 8: illegal character: :
(standard_in) 15: syntax error
(standard_in) 16: syntax error
(standard_in) 16: illegal character: M
(standard_in) 16: illegal character: I
(standard_in) 16: illegal character: P
(standard_in) 17: syntax error
(standard_in) 18: illegal character: T
(standard_in) 18: illegal character: S
(standard_in) 18: illegal character: T
(standard_in) 18: syntax error
(standard_in) 19: illegal character: T
(standard_in) 19: illegal character: S
(standard_in) 19: illegal character: T
(standard_in) 19: syntax error
(standard_in) 20: illegal character: T
(standard_in) 20: illegal character: S
(standard_in) 20: illegal character: T
(standard_in) 20: syntax error
(standard_in) 21: illegal character: T
.
.
.
(standard_in) 90: illegal character: I
(standard_in) 90: illegal character: O
(standard_in) 90: syntax error
(standard_in) 90: illegal character: P
(standard_in) 90: illegal character: I
(standard_in) 90: illegal character: I
(standard_in) 90: illegal character: T
(standard_in) 91: syntax error
(standard_in) 91: syntax error
(standard_in) 91: syntax error
(standard_in) 91: syntax error
(standard_in) 93: illegal character: S
(standard_in) 93: syntax error
(standard_in) 94: illegal character: O
(standard_in) 94: syntax error
(standard_in) 95: syntax error
(standard_in) 96: illegal character: U
(standard_in) 96: syntax error
(standard_in) 96: illegal character: '
(standard_in) 96: illegal character: O
(standard_in) 96: illegal character: '
FAILED.
在“…”处还有很多行,但它们基本上只是同一想法的变化。
vertical
?什么是earthmove
? - wilhelmtell$CURDIR/Release/vertical
并使用flatroad
文件吗?这样会产生完全相同的错误吗? - Richard Fearn