【发布时间】:2010-10-12 10:52:03
【问题描述】:
你能帮帮我吗? 我在 cygwin 上将其作为 ./test.sh 运行,但在第 51 行出现意外的文件结尾。 有什么想法吗?
提前谢谢
最后编辑:最终版本'在 CygWin 上运行,问题在于换行符,CrLf 而不是 Lf。
#!/bin/sh
##################################################
## USAGE
##################################################
if [ $# -ne 1 ]; then
echo "1>Use Extractor: $0 <MODO DE OPERACAO>"
echo "2>Use Extractor: $0 <MODO DE OPERACAO> <DATA INICIAL> <DATA FINAL>"
exit 127
else
if [ $1 -lt 0 ]; then
if [ $1 -gt 1 ]; then
echo "2>Use Extractor: $0 <MODO DE OPERACAO> <DATA INICIAL> <DATA FINAL>"
exit 127
fi
fi
fi
##################################################
## VARS
##################################################
##########################################
## AUX
##########################################
set java_cmd=""
set java_cmd_emergencial=""
set java_cp=""
##########################################
## JAR
##########################################
set db_user=""
set db_pwd=""
set conn_string=""
set work_dir=""
set output_dir=""
##################################################
## PARAMETROS
##################################################
set mode=$1
set data_ini=""
set data_fim=""
if [ $# -eq 3 ]; then
set data_ini = $2
set data_fim = $3
fi
##################################################
## CHAMADA DO JAR
##################################################
java "$java_cp" "$java_cmd" "$mode" "$db_user" "$db_pwd" "$conn_string" "$work_dir" "$output_dir"
【问题讨论】:
-
代码没有很好的缩进.. 缩进它并指向第 51 行
-
那么问题是找到行号然后找到错误?
-
Emilio:它相当缩进,第 51 行是文件的最后一行 tho :/ Learnin: 问题是是否有错误,因为我没有完全访问 linux 服务器的权限为了测试它,我在 cygwin 上测试,也许这就是错误。
-
请参阅下面的帖子,变量设置中的间距可能会导致问题。还修复了 if,它是 gt 而不是 -gt。
-
全部解决,谢谢大家的提示,问题是windows编辑器保存为windows格式(CrLf)而不是Unix(Lf)。感谢所有提示,掩盖了让我寻找文件格式的答案。