Linux sh脚本

项目需要多线程在Linux下的用批处理文件处理 例如:该文件名为test.sh,文件内容如下

#!/bin/sh
export JAVA_HOME=/usr/local/jdk1.6.0_35
export PROJECT_HOME=/home/runner/cloudsh/WebRoot/WEB-INF/
export PATH=$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib:$PROJECT_HOME/classes:$CLASSPATH
# add all the jar
for loop in `ls $PROJECT_HOME/lib/*.jar`;do
export CLASSPATH=${loop}:${CLASSPATH}
done
java net.maxt.cloudsh.main.MainThread

有时在window下编辑然后放到Linux下执行会出现/bin/sh^M:bad interpreter: No such file or directory  的错误,是因为

不同系统编码格式引起的,在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。

解决方法:

解决:
1 在windows下转换
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
sh脚本异常:/bin/sh^M:bad interpreter: No such file or directory - myswirl - 漩涡的窝
2 在Linux下转换

 只需要执行 

dos2unix test.sh即可,test.sh为要执行的脚本的文件名。



原文地址:https://www.cnblogs.com/chyg/p/2688684.html