在mac

时间:2017-07-01 06:07:05

标签: bash

run_cmd="spark-submit \
$SPARK_OPTIONS \
--conf spark.hadoop.fs.default.name=file:/// \
--conf spark.hadoop.fs.defaultFS=file:/// \
--py-files \
${TARGET}/test.zip \
$TEST_PY \
$RAW_DATA_FILE \
$OUTPUT \
--route $AGG_OUTPUT1 \
--origin $AGG_OUTPUT2 \
--first $AGG_OUTPUT3" #line 71

echo $run_cmd
echo $run_cmd | bash 
#line 75                       

代码如上所示,它可以在Ubuntu上成功运行。但是,当我在我的macbook上运行它时,spark-submit正常完成并且输出也正确生成,但是它输出错误,这听起来真的不合理。此外,如果spark-submit异常退出,则不会触发此错误。

./test.sh: line 71: unexpected EOF while looking for matching `"'
./test.sh: line 75: syntax error: unexpected end of file

1 个答案:

答案 0 :(得分:1)

您尚未发布所有相关代码,只有60~75附近的一些行。 如果您在发布的代码之前的某处有一个未关闭的",则会发生错误。例如:

a="

b="something"

如果您使用bash运行此脚本,则会报告:

script.sh: line 3: unexpected EOF while looking for matching `"'
script.sh: line 4: syntax error: unexpected end of file

与您的情况一样,错误报告不在未关闭"的行上, 但在其他地方。 会发生什么,Bash将a的值解释为\n\nb=, 然后在"之后有一个永不关闭的开头something

您的代码中也发生了同样的事情。 查找先前未在脚本中正确关闭的"