#java #shell #unix #ls #filewriter
#java #оболочка #unix #ls #filewriter
Вопрос:
Я написал сценарий оболочки (test.sh ) использование Java. Этот сценарий оболочки фактически выполняет задание копирования из одного файла в другой. После выполнения сценария оболочки я открыл каталог с консоли и набрал 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("rn");
bwFile.write("cd " strOutput);
bwFile.write("rn");
bwFile.write("mkdir " strOutput);
bwFile.write("rn");
bwFile.write(strUnixPath);
bwFile.write("rn");
bwFile.write("cd " strWorkingPath IPlatinumConstants.FS "lib" IPlatinumConstants.FS "Unx");
bwFile.write("rn");
bwFile.write("echo Cut Src Start time %time%");
bwFile.write("rn");
bwFile.write("cp " " "" strSourceFilePath "" ""
strOutput "copy_A"");
bwFile.write("rn");
Я предполагаю, что при создании сценария оболочки с использованием Java о чем-то нужно позаботиться
Комментарии:
1. Некоторые текстовые редакторы могут сохранять резервные копии и временные файлы подобным образом. Какое это имеет отношение к программированию?
2. Рассмотрите возможность публикации кода, который генерирует и выполняет сценарий оболочки, и пример сгенерированного сценария оболочки
3. Вероятно, OP сохранил файл в Windows, и теперь он имеет окончания файлов Windows. Используйте утилиту, такую как dos2unix, для преобразования скрипта.
4. вы почти правы.. это как-то связано с окончаниями файлов Windows.. но я пытаюсь создать файл только в среде unix
5. удалите r из r n, и он должен работать.
Ответ №1:
bwFile.write("rn");
замените эти строки окончаниями строк UNIX
bwFile.write("n");
или установите правильный разделитель строк
System.setProperty("line.separator", "n");
bwFile.newLine()