2014-06-25 116 views
1

我写了一个使用Java的shell脚本(test.sh)。这个shell脚本实际上是从一个文件到另一个文件执行复制作业。在执行shell脚本后,我打开了控制台的目录并键入ls。它显示输出文件与?扩展后的Unix:“ls”命令显示文件?扩展

例如:foo.csv?

File execFile = new File(file); 
    FileWriter fwFile; 
    try { 
     fwFile = new FileWriter(execFile); 
     execFile.setExecutable(true); 
     BufferedWriter bwFile = new BufferedWriter(fwFile); 
     bwFile.write(strOutput.substring(0, 2)); 
     bwFile.write("\r\n"); 
     bwFile.write("cd " + strOutput); 
     bwFile.write("\r\n"); 
     bwFile.write("mkdir " + strOutput); 
     bwFile.write("\r\n"); 
     bwFile.write(strUnixPath); 
     bwFile.write("\r\n"); 
     bwFile.write("cd " + strWorkingPath + IPlatinumConstants.FS+"lib"+IPlatinumConstants.FS+"Unx"); 
     bwFile.write("\r\n"); 
     bwFile.write("echo Cut Src Start time %time%"); 
     bwFile.write("\r\n"); 

       bwFile.write("cp " + " \"" + strSourceFilePath + "\" \"" 
         + strOutput + "copy_A\""); 
       bwFile.write("\r\n"); 

我的猜测是,虽然使用Java创建shell脚本,有什么需要照顾的

+1

某些文本编辑器可能会保存这样的备份和临时文件。这与编程有什么关系? –

+1

考虑发布生成和执行shell脚本的代码以及生成的shell脚本的示例 – MadProgrammer

+0

OP可能在Windows中保存了该文件,现在它已经有了Windows文件结尾。使用像dos2unix这样的工具来转换脚本。 –

回答

0
bwFile.write("\r\n"); 

Unix行结尾

bwFile.write("\n"); 

或将更换这些线路正确的行分隔符

System.setProperty("line.separator", "\n"); 
bwFile.newLine() 
+1

非常感谢你的回答.... – user3611574