Java Unix:“;ls";命令显示带有?延期后
我已经用Java编写了一个shell脚本(test.sh)。这个shell脚本实际上执行从一个文件到另一个文件的复制任务。在执行shell脚本之后,我从控制台打开了目录并键入了Java Unix:“;ls";命令显示带有?延期后,java,shell,unix,ls,filewriter,Java,Shell,Unix,Ls,Filewriter,我已经用Java编写了一个shell脚本(test.sh)。这个shell脚本实际上执行从一个文件到另一个文件的复制任务。在执行shell脚本之后,我从控制台打开了目录并键入了ls。它显示扩展名后带有?的输出文件 示例:foo.csv File execFile = new File(file); FileWriter fwFile; try { fwFile = new FileWriter(execFile); execFile.setExec
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脚本时,需要注意一些事情
bwFile.write("\r\n");
用UNIX行结尾替换这些行
bwFile.write("\n");
或设置适当的线路分隔符
System.setProperty("line.separator", "\n");
bwFile.newLine()
一些文本编辑器可能会保存备份文件和临时文件。这与编程有什么关系?考虑张贴生成和执行shell脚本的代码和生成的shell脚本的例子,OP可能将文件保存在Windows中,现在它有Windows文件结尾。使用dos2unix之类的实用程序转换脚本。您几乎是对的。。它与Windows文件结尾有关。。但是,我正在尝试仅在unix环境中创建文件从\r\n中删除,它应该可以工作。