Когда я пытаюсь выполнить файл (name.sh) в командной строке с помощью команды ./name.sh, я получаю сообщение об ошибке:
"" не распознается как внутренняя или внешняя команда, рабочий или пакетный файл
пожалуйста, помогите мне выполнить файл .sh
windows
shell-script
Broam
источник
источник
Вы пытаетесь запустить команду Linux в командной строке Windows.
В Linux косая черта является разделителем пути. В Windows обратная косая черта является разделителем пути, а прямая косая черта обычно указывает на аргумент.
Поэтому Windows считает, что вы пытаетесь запустить команду с именем «.» и синтаксический анализ аргумента "/name.sh". Правильное соглашение будет ". \ Name.sh". Кроме того, Windows автоматически выполнит поиск вашей команды в текущем каталоге, чтобы вы могли просто ввести «name.sh».
Следующая проблема, с которой вы столкнетесь, заключается в том, что Windows не знает, что такое sh-скрипт, опять же, это Linux. Вы можете решить эту проблему, установив Cygwin, если вы действительно хотите или вам нужно запустить скрипт sh.
Однако, судя по одному из ваших предыдущих комментариев, вы также можете переименовать скрипт в name.bat и удалить строку «#! / Bin / sh». Теперь у вас есть пакетный файл, который Windows должна понимать. Вы можете прочитать больше о пакетных файлах здесь .
источник
В качестве альтернативы вы можете перейти на темную сторону и установить Linux. Из приглашения:
или же
Ваша программа будет работать, и у вас будет лучшая система.
источник
Лучшее решение на мой взгляд:
Загрузите и установите .git для Windows
Щелкните правой кнопкой мыши на рабочем столе и скажите «git bash here»
Выполните ваш скрипт, как в Unix
Готово!
Внимание: многие команды не будут работать на окнах! Но все же многие основные вещи будут работать.
Если вам нужен этот скрипт регулярно, вы можете создать ярлык (например, на рабочем столе):
Создайте ярлык для
mintty.exe
рабочего столаОтредактируйте свойства ярлыка и измените цель (оставьте путь):
C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
источник
Вы пытаетесь заправить свою машину апельсиновым соком вместо бензина. Windows совместно использует аналогичные команды, хранящиеся в файлах .bat или .cmd, со сценариями оболочки Unix / Linux / zOS Unix / * ix для Unix / Linux / zOS, поскольку эти два семейства операционных систем имеют общего предка машин DEC PDP-x.
Если вы хотите получить мгновенное вознаграждение, вам необходимо установить среду, в которой есть программа «sh.exe» или «csh.exe» или «bash.exe» (кто-нибудь из tsh.exe?)
В качестве альтернативы, если вы хорошо знаете команды сценариев Unix и хорошо знаете команды Windows .cmd и .bat file, вы можете преобразовать файл .sh в файл .bat или .cmd. Тем не менее, вы часто будете встречать больше Unix-стилевых программ, не имеющих аналогов в Windows - grep, sed, vi, emacs и т. Д. Таким образом, вызов для установки CygWin (без минимализма) - просто для того, чтобы получить оболочку и Unix инструменты. Поместите его на флешку для этих особых случаев.
источник
Кто-то сказал что-то об использовании MS-DOS
/
для команд и\
путей. Это немного вводит в заблуждение. Посмотрите на мой пример:Не имеет разницы в действии. Да, это не так для всех операций - фактический ответ - просто Нет , или без Cygwin или SSHD вы не сможете.
Я только знаю , потому что я тупо потратил полдня , пытаясь выяснить , что
if then fi
иeval
,exec
делать с-Djava.something
при вызове.источник
Используйте Github для Windows. Он содержит все исполняемые файлы среды Unix.
https://github-windows.s3.amazonaws.com/GitHubSetup.exe
источник
Я нашел другое и простое решение под названием UnixUtil .
Загрузите и разархивируйте его на диск C :. Установите переменную среды
path
для включенияC:\UnixUtils\usr\local\wbin
.Это важно. НЕ устанавливайте путь к
C:\UnixUtils\bin
источник
Для полноты картины хочу упомянуть новую функцию «Подсистема Windows для Linux» для Windows 10. Подробности описаны в http://www.howtogeek.com/249966/how-to-install-and-use-the-linux- Баш-оболочки на окнах-10 /
Обратите внимание, что для этого необходимо активировать переключатель «Режим разработчика» и включить опцию «Подсистема Windows для Linux (бета-версия)».
Для себя я обнаружил, что установки Git для Windows (которую я использую в любом случае) достаточно.
источник
Это старая тема, но для тех, кто работает под управлением Windows 10. Просто откройте функции Windows на панели управления «Включение или отключение функций Windows»
Выберите функцию «Подсистема Windows для Linux». После установки у вас есть «Bash», и вы даже можете настроить собственные серверы Linux в Bash. И конечно, команда sh в bash тоже работает.
источник
Вполне возможно, что проблема на самом деле находится внутри файла
name.sh
- вы пытаетесь использовать.
команду, но она пытается запустить своего рода оболочку (напримерcsh
, я думаю), в которой это недопустимая команда.Итак:
name.sh
начинается ли с правильного#!/bin/sh
(если вы на самом деле пытаетесь запуститьsh
)?источник
хорошо, в этом есть ОЧЕНЬ много неправильного - удалите #! / bin / sh и измените расширение на bat, и это может сработать еще с несколькими исправлениями. Затем вы можете просто вызвать его по имени файла.
Синтаксис сценария оболочки Unix и командного файла Windows не слишком похожи. Cygwin, или куча возни с unxutils может сделать что-то, что будет работать в обоих случаях, но если вы АБСОЛЮТНО не уверены, что среда всегда одинакова, это не стоит головной боли
источник
drop the #!/bin/sh, and change the extention to bat, and it might work with a few more fixes.
Какая?! Я подозреваю, что вы никогда не пробовали это ... В Windows даже самые простые возможности bash не поддерживаются или требуют длительного синтаксиса.Если у вас дома (или на работе) установлен Linux и он подключен к той же сети, и эта сеть безопасна, это может помочь:
mount //WinMachine/Share LinuxFolder
(IIRC и требует Samba ).источник
Запустить скрипт оболочки из windows. Сначала используйте команду: dos2unix, затем вы можете использовать обычную команду: sh runide.sh
Это сработает.
источник
Несмотря на то, что существующие ответы здесь были правильными в то время, Windows 10 имеет в настоящее время необязательно включать в себя модифицированную версию Ubuntu работает полный Баш оболочку .
После того, как скрипты станут исполняемыми, они могут запускаться обычным способом изнутри bash, например:
Если вы хотите запустить скрипт прямо из Windows, вы можете создать ярлык в том же каталоге и установить для «Target» что-то вроде:
Если путь вашего скрипта относительно местоположения ярлыка (как в примере выше), убедитесь, что поле «Начать с» также пустое.
источник