Как создавать и запускать сценарии оболочки Bash в Windows 10

С появлением оболочки Bash в Windows 10 теперь вы можете создавать и запускать сценарии оболочки Bash в Windows 10. Вы также можете включать команды Bash в пакетный файл Windows или сценарий PowerShell.

Даже если вы знаете, что делаете, это не обязательно так просто, как кажется. Windows и UNIX используют разные символы конца строки, а файловая система Windows доступна в другом месте в среде Bash.

Как написать сценарий Bash в Windows 10

СВЯЗАННЫЕ: Как установить и использовать оболочку Linux Bash в Windows 10

При написании сценариев оболочки в Windows имейте в виду, что Windows и UNIX-подобные системы, такие как Linux, используют разные символы конца строки в текстовых файлах в сценариях оболочки.

Другими словами, это означает, что вы не можете просто написать сценарий оболочки в Блокноте. Сохраните файл в Блокноте, и Bash не сможет его правильно интерпретировать. Однако вы можете использовать более продвинутые текстовые редакторы - например, Notepad ++ позволяет добавлять в файл символы конца строки UNIX, щелкнув Правка> Преобразование EOL> Формат UNIX / OSX.

Однако вам лучше просто написать сценарий оболочки в самой среде Bash. Среда Bash на основе Ubuntu поставляется с текстовыми редакторами vi и nano. Редактор vi более мощный, но, если вы никогда не использовали его раньше, вы можете начать с nano. Им легче пользоваться, если ты новичок.

Например, чтобы создать сценарий bash в nano, вы должны выполнить следующую команду в bash:

нано ~ / myscript.sh

Это откроет текстовый редактор Nano, указывающий на файл с именем «myscript.sh» в домашнем каталоге вашей учетной записи. (Символ «~» представляет ваш домашний каталог, поэтому полный путь - /home/username/myscript.sh.)

Запустите сценарий оболочки со строки:

#! / bin / bash

СВЯЗАННЫЕ: Руководство для начинающих по написанию сценариев оболочки: основы

Введите команды, которые вы хотите запустить, каждую в отдельной строке. Сценарий будет запускать каждую команду по очереди. Добавьте символ «#» перед строкой, чтобы рассматривать ее как «комментарий», что поможет вам и другим людям понять сценарий, но не запускается как команда. Чтобы узнать о более сложных приемах, обратитесь к более подробному руководству по сценариям Bash в Linux. Те же методы будут работать в Bash в Ubuntu в Windows.

Обратите внимание, что нет возможности запускать программы Windows из среды Bash. Вы ограничены командами и утилитами терминала Linux, как и в типичной системе Linux.

Например, давайте просто воспользуемся базовым скриптом «hello world» в качестве примера здесь:

#! / bin / bash # установить переменную STRING STRING = "Hello World!" # выводить содержимое переменной на экран echo $ STRING

Если вы используете текстовый редактор Nano, вы можете сохранить файл, нажав Ctrl + O, а затем Enter. Закройте редактор, нажав Ctrl + X.

Сделайте скрипт исполняемым, а затем запустите его

Вы, вероятно, захотите сделать скрипт исполняемым, чтобы его было легче запускать. В Linux это означает, что вам необходимо предоставить файлу сценария разрешение на выполнение. Для этого запустите в терминале следующую команду, указав ее на свой скрипт:

chmod + x ~ / myscript.sh

Чтобы запустить сценарий, теперь вы можете просто запустить его в терминале, введя его путь. Каждый раз, когда вы захотите запустить сценарий в будущем, просто откройте оболочку Bash и введите путь к сценарию.

~ / myscript.sh

(Если сценарий находится в текущем каталоге, вы можете запустить его с помощью ./myscript.sh)

Как работать с файлами Windows в сценарии Bash

СВЯЗАННЫЕ: Как получить доступ к вашим файлам Ubuntu Bash в Windows (и к вашему системному диску Windows в Bash)

Чтобы получить доступ к файлам Windows в сценарии, вам необходимо указать их путь в / mnt / c, а не путь к ним в Windows. Например, если вы хотите указать файл C: \ Users \ Bob \ Downloads \ test.txt, вам нужно будет указать путь /mnt/c/Users/Bob/Downloads/test.txt. Дополнительные сведения см. В нашем руководстве по расположению файлов в оболочке Bash Windows 10.

Как включить команды Bash в пакетный сценарий или сценарий PowerShell

СВЯЗАННЫЕ: Как установить дистрибутив Linux по умолчанию в Windows 10

Наконец, если у вас есть существующий пакетный файл или сценарий PowerShell, в который вы хотите включить команды, вы можете запускать команды Bash напрямую, используя bash -cкоманду.

Например, чтобы запустить команду Linux в командной строке или окне PowerShell, вы можете выполнить следующую команду:

bash -c "команда"

Этот трюк позволяет добавлять команды Bash в командные файлы или сценарии PowerShell. Окно оболочки Bash появится при выполнении команды Bash.

Обновление : если у вас установлено несколько сред Linux, вы можете использовать команду wslconfig, чтобы выбрать среду Linux по умолчанию, используемую при запуске bash -cкоманды.

Чтобы создать ярлык для сценария Bash из Windows, просто создайте ярлык, как обычно. В качестве цели ярлыка используйте bash -cкоманду, описанную выше, и укажите ее на созданный вами сценарий Bash.

Например, вы должны указать ярлык на « bash -c "~/myscript.sh"», чтобы запустить приведенный выше пример сценария. Вы также можете просто запустить эту команду из командной строки или окна PowerShell.