Запустите сценарий оболочки в WSL с помощью \ r \ n - PullRequest
0 голосов
/ 11 марта 2020

У меня есть Python проект, который представляет собой набор Docker контейнеров и скриптов terraform. Моя рабочая станция Windows 10, поэтому я установил Ubuntu в WSL для ее разработки. Проблема, с которой я сталкиваюсь, заключается в том, что существует множество сценариев оболочки (. sh), которые мне нужно запустить в процессе сборки. В Git он всегда проверяет файлы в стиле Windows и фиксирует файлы в стиле Unix. В результате оболочка Ubuntu bash не любит эти сценарии оболочки, и мне нужно запустить dos2 unix перед запуском файла. Есть ли один вкладыш, который позволяет мне запускать эти сценарии без их изменения?

Ответы [ 3 ]

0 голосов
/ 11 марта 2020

Основная проблема imo заключается в проверке неправильных окончаний файлов в git.

Простой способ исправить все сценарии оболочки одновременно:

find . -type f -name "*.sh" -exec dos2unix {} \;

Он рекурсивно найдет все файлы с расширением. sh и выполните на нем dos2 unix.

0 голосов
/ 12 марта 2020

Я бы рекомендовал установить для git репо стиль оформления linux, а не windows окончания строк.

Я много работаю с узлом / докером / linux, но у меня есть windows 10 ноутбуков, это то, что я сделал.

git config --global core.autocrlf input

См. эту ссылку для более подробной информации. Таким образом, вам не нужно постоянно запускать сценарии, чтобы убедиться, что у вас правильные окончания строк. Также полезно установить в редакторе значение по умолчанию linux окончания строки.

0 голосов
/ 11 марта 2020

Если сценарии не вызывают другой сценарий, вы могли бы

tr "\r\n" "\n" script.sh | bash

Но в другом случае я думаю, что вам нужно изменить конфигурацию хранилища, чтобы указать git, чтобы файлы не преобразовывались. sh расширение. Посмотрите на этот ответ { ссылка }

Если вы хотите изменить конфигурацию git, чтобы удалить автоматическое преобразование, посмотрите официальную документацию . Но это плохая идея.

...