Я пытаюсь выполнить какой-то действительно простой скрипт .sh под Windows, но я действительно не могу. Я новичок в написании сценариев и бабуинов, поэтому я пытаюсь объяснить свою проблему.

У меня есть 2 файла, и мне нужно манипулировать ими с помощью команды sed.

Ввод команд:

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/

sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_01.xml</filename>|" WebGrab++.config.xml

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/

sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_02.xml</filename>|" WebGrab++.config.xml

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/

sed -i '/<!--02-->/,/<!--19-->/d' WebGrab++.config.xml

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/

sed -i '/<!--01-->/,/<!--02-->/d' WebGrab++.config.xml

sed -i '/<!--03-->/,/<!--19-->/d' WebGrab++.config.xml

Отправляя этот коммит один за другим, все в порядке.

Если я добавлю те же команды в один файл .sh ничего не работает нормально. На оболочке, когда я выполняю созданный мной файл, я могу прочитать все пути, которые я использую, неправильные. Почему, если я запускаю команды по очереди, все в порядке, а если я запускаю один сценарий - нет?

Это файл, который я сделал cygwin.sh

#!/bin/bash

cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/
sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_01.xml</filename>|" WebGrab++.config.xml
cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/
sed -i "15s|.*|  <filename>C:\\\ProgramData\\\ServerCare\\\data\\\xml\\\guide_02.xml</filename>|" WebGrab++.config.xml
cd /cygdrive/c/ProgramData/ServerCare/WebGrab_01/
sed -i '/<!--02-->/,/<!--19-->/d' WebGrab++.config.xml
cd /cygdrive/c/ProgramData/ServerCare/WebGrab_02/
sed -i '/<!--01-->/,/<!--02-->/d' WebGrab++.config.xml
sed -i '/<!--03-->/,/<!--19-->/d' WebGrab++.config.xml

Ошибки, которые я получаю:

{ bash }  » ./cygwin.sh
/cygdrive/c/ProgramData/ServerCare/data/bash
./cygwin.sh: line 2: $'\r': command not found
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_01/
: No such file or directoryonfig.xml
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_02/
: No such file or directoryonfig.xml
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_01/
: No such file or directoryonfig.xml
: No such file or directoryygdrive/c/ProgramData/ServerCare/WebGrab_02/
: No such file or directoryonfig.xml
 sed: can't read WebGrab++.config.xml: No such file or directory

Кроме того, мне нужно редактировать файлы 2 раза в день, есть ли один способ запустить файл .sh и выполнить его внутри оболочки Babun? Я знаю, как автоматически запускать его под Windows 7, но не связывать альтернативную оболочку. Если я запускаю файл .sh и выбираю babun, то ничего не происходит.

Спасибо в совет, каждый может ответить мне :)

Спасибо DavidPostill, чтобы помочь мне с редактированием.

1 ответ1

0

подсказка здесь:

./cygwin.sh: строка 2: $ '\r': команда не найдена

преобразовать файл из конца строки CRLF в конец LF только с

d2u ./cygwin.sh 

На Cygwin команду d2u принадлежит пакет dos2unix-7.3.4-1, я полагаю , также Babun должны иметь его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .