Запуск сценария bash-оболочки в Windows из Notepad++ с использованием NppExec (и Cygwin)
Я пытаюсь восстановить, как выполнить оболочку Bash .sh
файл на моем компьютере с Windows из Notepad++, используя NPPExec. (Я успешно делал это раньше, но мой жесткий диск вышел из строя, и я не помню, как я делал это раньше.)
Когда он работал раньше, я запускал скрипт NPPExec, который вызывал .sh
файл, и он показал мне вывод консоли обработки файла.sh в Notepad++, как если бы он обрабатывал в cygwin.
Это пример файла.sh, который я пытаюсь заставить работать:
message="Testing"
echo $message
Этот файл находится в корне C:.
Неудачные попытки:
Ни один из следующих трех методов не работает:
- Выполнение:
C:\nppexec.sh
Отклик:
CreateProcess() failed with error code 193:
%1 is not a valid Win32 application.
- Выполнение:
npp_exec C:\nppexec.sh
Отклик:
message="Testing"
CreateProcess() failed with error code 2:
The system cannot find the file specified.
$message
Добавление
#! /bin/bash
в файл.sh в качестве первой строки просто вызывает дополнительную ошибку при запуске npp_exec:NPP_EXEC: C:\nppexec.sh #! /bin/bash CreateProcess() failed with error code 2: The system cannot find the file specified.
4 ответа
Решением было вызвать bash напрямую:
C:\cygwin\bin\bash --login -c "command.sh"
У меня такая же ошибка при попытке выполнить командный файл в Windows.
Я решил проблему, выполнив сначала команду cmd в консоли notepad ++, затем E:\test.bat
У меня также есть mksnt, установленный на моем оконном ПК.
запустив сначала bash в консоли notepad ++, тестовая оболочка теперь работает хорошо
bash
C:\nppexec.sh
Одним нажатием клавиши я хотел выполнить сценарий оболочки активной вкладки, используя Cygwin в блокноте.
После нескольких часов поиска в Интернете и экспериментов я наконец-то придумал
- установить плагин NppExec
- Хит F6
вставьте следующий код:
//save the file NPP_SAVE //redirect console output to $(OUTPUT) & silent mode npe_console v+ -- //convert winpath to cygpath D:\cygwin64\bin\bash -lc "cygpath \"$(FULL_CURRENT_PATH)\" //execute the file D:\cygwin64\bin\bash -lc "$(OUTPUT)"
Надеюсь, что сэкономить время для некоторых людей
Используйте эту команду Выполнить
C:\cygwin64\bin\bash.exe -l -c "cd \"$0\" ; echo $@; \"./$1\"; exec bash;" "$(CURRENT_DIRECTORY)" "$(FILE_NAME)"
Вы можете сохранить эту команду для последующего использования из диалогового окна "Выполнить".