- Как запускать shell (*.sh) скрипты?
- Как запустить sh скрипт из командной строки?
- Похожие записи
- Отличные игры для знакомства с FlexBox и CssGrid
- Ubuntu. В разделе /boot не осталось места.
- Как заблокировать обновление пакета в Ubuntu?
- Как обновить npm и пакеты npm ?
- Разница между «service restart» и «service reload»
- Интерактивные и удобные linux инструменты
- How to run .sh or Shell Script file in Windows 10
- How to run .sh or Shell Script file in Windows 10
- 1] Execute Shell Script file using WSL
- 2] Execute Shell Script using Ubuntu on Windows 10
- Related Posts
- Windows Subsystem for Linux has no installed distributions
- Failed to Fork error with Ubuntu on Windows 10
- WslRegisterDistribution failed with error 0x8007019e and 0x8000000d – WSL
- [email protected]
- Primary Sidebar
- Information Security Squad
- 🐧 Как запустить файл .sh или Shell скрипт в Windows 10
- Как запустить файл .sh или скрипт шелла в Windows 10
- 1] Выполнить файл скрипта оболочки, используя WSL
- 2] Выполнить скрипт оболочки, используя Ubuntu в Windows 10
- Running a shell script through Cygwin on Windows
- 6 Answers 6
- Как в Windows 10 запускать SH-скрипты без подсистемы Bash
- Git Bash
- Cygwin
Как запускать shell (*.sh) скрипты?
Shell — это один из командных интерпретаторов, поставляемых вместе с ОС unix. Программа на языке Shell называется скриптом. Shell скрпитам указывают расширение *.sh и работают они в Unix системах. Если вам надо запустить shell скрипт в windows, то можно установить подсистему Linux Ubuntu или установить отдельно интерпретатор Shell для windows.
Как запустить sh скрипт из командной строки?
Допустим у вас есть скрипт hello.sh состоящий из одной команды.
Чтобы его запустить, надо зайти в каталог, где расположен скрипт, набрать название интерпретатора sh и первым параметров указать ваш файл hello.sh.
Чтобы каждый раз не указывать интерпретатор в терминале, можно сделать скрипт исполняемым. Для этого необходимо:
- Указать интерпретатор внутри файла.
На первой строчке после #! прописывам путь к bash-интерпретатору, по-умолчанию это /bin/bash (посмотреть можно командой whereis bash). Содержмиое скрипта hello.sh получается таким: - Сделать наш файл исполняемым. Для этого используется команда chmod +x и имя файла скрипта:
Теперь можно запускать:
Перед названием скрипта надо ставить точку и слэш, сделано для усложнения работы вирусов. Точка означает «текущий каталог», а слэш «/» разделитель между именем каталога и именем скрипта.
Похожие записи
Отличные игры для знакомства с FlexBox и CssGrid
Привет мир и всё остальные! Если вас интересует современная веб-разработка, а вы еще не знакомы с технологиями flexbox и cssgrid, то у меня есть для вас отличная новость.
Ubuntu. В разделе /boot не осталось места.
Недавно столкнулся с проблемой, что система ubuntu не может обновиться. Пишет ошибки про неудвлетворенные зависимости и не дает возможности завершится командам.
Как заблокировать обновление пакета в Ubuntu?
Иногда необходимо запретить обновление какого-нибудь пакет из нестабильного репозитория. Для этого есть 2 решения: грубое — отключить репозитарий, элегантное — заморозить обновление отдельного пакета.
Команда, чтобы заблокировать обновление пакета:
Команда, чтобы разблокировать обновление пакета:
Как обновить npm и пакеты npm ?
Обновление npm через npm + команда для обновления пакета на примере angular cli (глобально).
Разница между «service restart» и «service reload»
Интерактивные и удобные linux инструменты
Обновленные альтернативы инструментов командной строки cat, ncdu/du, ls, find, jq
How to run .sh or Shell Script file in Windows 10
Shell Scripts or .SH files are like batch files of Windows which can be executed in Linux or Unix. It is possible to run .sh or Shell Script file in Windows 10 using Windows Subsystem for Linux. In this post, we will show you how to run a Shell Script file in Windows 10.
How to run .sh or Shell Script file in Windows 10
Bash is a Unix shell and command language which can run Shell Script files. You do not need to install Ubuntu or any other Linux Distros unless your scripts need the support of the real Linux kernel. We will share both the methods.
- Execute Shell Script file using WSL
- Execute Shell Script using Ubuntu on Windows 10
1] Execute Shell Script file using WSL
Install WSL or Windows Subsystem for Linux
Go to Settings > Update & Security > For Developers. Check the Developer Mode radio button. And search for “Windows Features”, choose “Turn Windows features on or off”.
Scroll to find WSL, check the box, and then install it. Once done, one has to reboot to finish installing the requested changes. Press Restart now. BASH will be available in the Command Prompt and PowerShell.
Execute Shell Script Files
- Open Command Prompt and navigate to the folder where the script file is available.
- Type Bash script-filename.sh and hit the enter key.
- It will execute the script, and depending on the file, you should see an output.
On a Linux platform, you usually use SH, but here you need to use BASH. That said, BASH in Windows has its limitations, so if you want to execute in a Linux environment, you need to install Ubuntu or anything similar.
2] Execute Shell Script using Ubuntu on Windows 10
Make sure you have Ubuntu or any other Linux distros installed. Ubuntu will mount or make all your Windows directories available under /mnt. So the C drive is available at /mnt/C. So if the desktop will be available at /mnt/c/users/ /desktop.
Now follow these steps
- Type Bash in run prompt, and it will launch the distro prompt.
- Navigate to the folder using “cd” command to the folder where the scripts are available.
- Type “sh script.sh” and hit enter.
It will execute the script, and if they have a dependency on any of core Linux features.
Since Linux is now available in Windows, you need not use any third party applications like Cygwin. WSL should be enough for most of the scenarios to help you run a shell script in Windows 10.
Date: July 15, 2019 Tags: WSL
Related Posts
Windows Subsystem for Linux has no installed distributions
Failed to Fork error with Ubuntu on Windows 10
WslRegisterDistribution failed with error 0x8007019e and 0x8000000d – WSL
[email protected]
Ashish is a veteran Windows, and Xbox user who excels in writing tips, tricks, and features on it to improve your day to day experience with your devices.
Primary Sidebar
report this ad
Information Security Squad
stay tune stay secure
- Home
- 2019
- Июль
- 15
- 🐧 Как запустить файл .sh или Shell скрипт в Windows 10
🐧 Как запустить файл .sh или Shell скрипт в Windows 10
Шелл скрипты или .SH файлы похожи на командные файлы Windows, которые могут выполняться в Linux или Unix.
В Windows 10 можно запустить файл .sh или скрипт оболочки, используя подсистему Windows для Linux.
В этом руководстве мы покажем вам, как запустить файл скрипта оболочки в Windows 10.
Как запустить файл .sh или скрипт шелла в Windows 10
Bash – это оболочка и командный язык Unix, который может запускать файлы скрипты .sh.
Вам не нужно устанавливать Ubuntu или любые другие дистрибутивы Linux, если ваши скрипты не нуждаются в поддержке реального ядра Linux.
Мы поделимся обоими методами.
- Выполнить файл скрипт оболочки, используя WSL
- Выполнить скрипт оболочки с помощью Ubuntu в Windows 10
1] Выполнить файл скрипта оболочки, используя WSL
Установите WSL или Windows Subsystem для Linux
Перейдите в Настройки> Обновление и безопасность> Для разработчиков.
Проверьте переключатель режима разработчика.
Поищите «Функции Windows», выберите «Включить или отключить функции Windows».
Прокрутите, чтобы найти WSL, установите флажок и установите его.
После этого необходимо перезагрузить компьютер, чтобы завершить установку запрошенных изменений.
Нажмите Перезагрузить сейчас.
BASH отныне будет доступен в командной строке и PowerShell.
Выполнить файлы скриптов оболочки
- Откройте командную строку и перейдите в папку, где доступен файл скрипта
- Введите Bash script-filename.sh и нажмите клавишу Enter.
- Система выполнит скрипт, и в зависимости от файла вы должны увидеть вывод.
На платформе Linux вы обычно используете SH, но здесь вам нужно использовать BASH.
Тем не менее, BASH в Windows имеет свои ограничения, поэтому, если вы хотите выполнить их в среде Linux, вам нужно установить Ubuntu или что-то подобное.
2] Выполнить скрипт оболочки, используя Ubuntu в Windows 10
Убедитесь, что у вас установлена Ubuntu или любой другой дистрибутив Linux.
Ubuntu смонтирует или сделает все ваши каталоги Windows доступными в /mnt.
Таким образом, диск C доступен по адресу /mnt/C.
Таким образом рабочий стол будет доступен по адресу /mnt/c/users/ /desktop.
Теперь следуйте этим шагам
- В командной строке введите Bash, и система запустит приглашение дистрибутива.
- Перейдите в папку с помощью команды «cd» , где доступны скрипты.
- Введите «sh script.sh» и нажмите Enter
Система выполнит скрипт
Поскольку Linux теперь доступен в Windows, вам не нужно использовать какие-либо сторонние приложения, такие как Cygwin.
WSL должно быть достаточно для большинства скриптов, чтобы помочь вам запустить эти самые крипты оболочки в Windows 10.
Running a shell script through Cygwin on Windows
I have a bunch of shell scripts that used to run on a Linux machine. Now, we’ve switched over to Windows, and I need to run these scripts there. I have Cygwin installed, but is there a way to make the script run using Cygwin, but the call is made from Windows batch?
6 Answers 6
Sure. On my (pretty vanilla) Cygwin setup, bash is in c:\cygwin\bin so I can run a bash script (say testit.sh ) from a Windows batch file using a command like:
. which can be included in a .bat file as easily as it can be typed at the command line, and with the same effect.
One more thing — if You edited the shell script in some Windows text editor, which produces the \r\n line-endings, cygwin’s bash wouldn’t accept those \r . Just run dos2unix testit.sh before executing the script:
If you have access to the Notepad++ editor on Windows there is a feature that allows you to easily get around this problem:
- Open the file that’s giving the error in Notepad++.
- Go under the «Edit» Menu and choose «EOL Conversion»
- There is an option there for «UNIX/OSX Format.» Choose that option.
- Re-save the file.
I did this and it solved my problems.
Hope this helps!
Just wanted to add that you can do this to apply dos2unix fix for all files under a directory, as it saved me heaps of time when we had to ‘fix’ a bunch of our scripts.
I’d do it as a comment to Roman’s answer, but I don’t have access to commenting yet.
The existing answers all seem to run this script in a DOS console window.
This may be acceptable, but for example means that colour codes (changing text colour) don’t work but instead get printed out as they are:
I found this solution some time ago, so I’m not sure whether mintty.exe is a standard Cygwin utility or whether you have to run the setup program to get it, but I run like this:
. this causes the script to run in a Cygwin BASH console instead of a Windows DOS console.
If you don’t mind always including .sh on the script file name, then you can keep the same script for Cygwin and Unix (Macbook).
To illustrate:
1. Always include .sh to your script file name, e.g., test1.sh
2. test1.sh looks like the following as an example:
#!/bin/bash echo ‘$0 = ‘ $0 echo ‘$1 = ‘ $1 filepath=$1 3. On Windows with Cygwin, you type «test1.sh» to run
4. On a Unix, you also type «test1.sh» to run
Note: On Windows, you need to use the file explorer to do following once:
1. Open the file explorer
2. Right-click on a file with .sh extension, like test1.sh
3. Open with. -> Select sh.exe
After this, your Windows 10 remembers to execute all .sh files with sh.exe.
Note: Using this method, you do not need to prepend your script file name with bash to run
Как в Windows 10 запускать SH-скрипты без подсистемы Bash
Большинству пользователей так или иначе приходилось сталкиваться со скриптами – мини-программами, используемыми обычно для чисто утилитарных целей. Наиболее распространены пакетные файлы CMD и BAT, однако иногда попадаются и другие типы скриптов, например, SH – сценарии, используемые прикладными программами в Bash. Несмотря на то, что предназначаются такие скрипты для Linux, благодаря интеграции подсистемы Bash они запросто могут быть выполнены и в Windows 10. Впрочем, если вы без подготовки попробуете запустить в «десятке» пакетный файл SH, то у системы не получится его обработать.
Чтобы иметь возможность запускать в среде Windows SH-сценарии, вам нужно ставить подсистему Linux. Но можно пойти и другим путем, установив альтернативные интерпретаторы, например, Git Bash или Cygwin. Они позволяют компилировать и запускать Unix и Linux-сценарии в Windows, причем как в 64-разрядной, так и в 32-разрядной версии системы.
Git Bash
Приложение Git Bash доступно для скачивания с сайта разработчика git-scm.com/downloads. Скачав версию для Windows вашей разрядности, установите программу, проигнорировав многочисленные настройки в окне мастера (менять их нет смысла). После запуска приложения вы увидите окно командной строки, очень похожей на окно стандартной консоли CMD, только с другим приглашением ввода.
Теперь, чтобы запустить SH-скрипт, перетащите его в окно консоли и нажмите ввод. Вот и всё, командный файл будет исполнен.
А еще вы можете открыть консоль Git Bash в любом каталоге, выбрав в контекстном меню Проводника, куда интерпретатор интегрируется при установке, опцию «Git Bash Here». В этом случае скрипты запускаются командой sn name, где name – имя скрипта.
Cygwin
Процедура установки приложения Cygwin, доступного для скачивания по ссылке www.cygwin.com, несколько отличается. В окне мастера-установщика вам нужно будет выбрать загрузку файлов из интернета, затем указать сервер (подойдет любой), место установки (по умолчанию корень диска C) и пакеты установки. Здесь всё можно оставить по умолчанию либо выбрать Full в выпадающем меню View.
Подобно Git Bash, Cygwin представляет собой командную строку, из которой и запускаются SH-скрипты. Да, перетаскивание в ней тоже работает.
Наконец, попробовать запустить SH-скрипт можно в обычной командной строке Windows 10, удалив в Блокноте первую строку #!/bin/bash и изменив расширение файла на BAT или CMD. Однако подобный скрипт отработает только в том случае, если содержащийся в нём код будет понятен интерпретатору CMD.