Руководство для начинающих по BASH – Часть 1 – Hello World

В Интернете есть много руководств, показывающих, как создавать сценарии Shell с использованием BASH, и это руководство призвано дать немного другое вращение, потому что оно написано кем-то, у кого очень мало опыта написания сценариев оболочки.

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

Хотя мой опыт написания сценариев в оболочке LINUX/UNIX ограничен, я по профессии разработчик программного обеспечения и очень хорошо разбираюсь в таких языках сценариев, как PERL, PHP и VBScript.

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

Начиная

Очевидно, есть много теорий, которые я мог бы сразу передать вам, например, описание различных типов оболочек и преимуществ использования BASH по сравнению с KSH и CSH.

Большинство людей, изучая что-то новое, хотят сначала начать с некоторых практических уроков, и с учетом этого я не буду утомлять вас пустяками, которые сейчас не важны.

Все, что вам нужно для следования этому руководству, – это текстовый редактор и терминал с BASH (оболочка по умолчанию в большинстве дистрибутивов Linux).

Текстовые редакторы

В других руководствах, которые я читал, предлагалось, чтобы вам был нужен текстовый редактор, включающий цветовое кодирование команд, а рекомендованные редакторы – VIM или EMACS.

Цветовая кодировка хороша тем, что выделяет команды по мере их ввода, но для абсолютного новичка вы могли бы потратить первые несколько недель на изучение VIM и EMACS без написания ни одной строки кода.

Из этих двух я предпочитаю EMACS, но, если честно, я предпочитаю использовать простой редактор, такой как nano, gedit или leafpad.

Если вы пишете сценарии на своем компьютере и знаете, что у вас всегда будет доступ к графической среде, вы можете выбрать редактор, который лучше всего вам подходит, и может быть графическим, например, GEdit, или редактор, работающий непосредственно в терминале. такие как нано или vim.

В целях данного руководства я буду использовать nano, так как он изначально установлен в большинстве дистрибутивов Linux, и поэтому, вероятно, у вас будет к нему доступ.

Открытие окна терминала

Если вы используете дистрибутив Linux с графическим рабочим столом, таким как Linux Mint или Ubuntu, вы можете открыть окно терминала, нажав CTRL + ALT + T.

Где поставить ваши сценарии

Для целей этого урока вы можете поместить свои скрипты в папку в вашей домашней папке.

В окне терминала убедитесь, что вы находитесь в своей домашней папке, введя следующую команду:

  cd ~  

Команда cd означает изменение каталога, а тильда (~) – это ярлык для вашей домашней папки.

Вы можете проверить, что находитесь в правильном месте, введя следующую команду:

 PWD 

Команда pwd сообщит вам ваш текущий рабочий каталог (где вы находитесь в дереве каталогов). В моем случае он вернулся/домой/гэри.

Теперь очевидно, что вы не захотите помещать свои сценарии прямо в домашнюю папку, поэтому создайте папку с именем scripts, введя следующую команду.

 скрипты mkdir 

Перейдите в новую папку сценариев, введя следующую команду:

 cd-скрипты 

Ваш первый сценарий

При обучении программированию принято, чтобы первая программа просто выводила слова «Hello World».

В вашей папке скриптов введите следующую команду:

 nano helloworld.sh 

Теперь введите следующий код в окно nano.

 #!/Bin/Баш
эхо "привет мир" 

Нажмите CTRL + O, чтобы сохранить файл, и CTRL + X, чтобы выйти из nano.

Сам сценарий составлен следующим образом:

#!/Bin/bash должен быть включен в начало всех сценариев, которые вы пишете, поскольку он позволяет интерпретаторам и операционной системе знать, как обрабатывать файл. В основном просто не забудьте вставить это и забыть о том, почему вы делаете это.

Во второй строке есть единственная команда с именем echo, которая выводит текст, следующий за ней.

Обратите внимание, что если вы хотите отобразить более одного слова, вам нужно использовать двойные кавычки (“) вокруг слов.

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

 sh helloworld.sh 

Должны появиться слова «Привет, мир».

Другой способ запуска сценариев заключается в следующем:

 ./ helloworld.sh 

Скорее всего, если вы сразу же запустите эту команду в своем терминале, вы получите ошибку прав доступа.

Чтобы предоставить разрешения для запуска сценария таким способом, введите следующее:

 sudo chmod + x helloworld.sh 

Так что на самом деле там произошло? Почему вы смогли запустить sh helloworld.sh, не меняя разрешения, но запустив ./helloworld.Ш вызвал проблему?

Первый метод загружает интерпретатор bash, который принимает helloworld.sh в качестве входных данных и определяет, что с ним делать. Интерпретатор bash уже имеет разрешения на запуск и ему просто нужно выполнить команды в сценарии.

Второй метод позволяет операционной системе определить, что делать со сценарием, и поэтому для его выполнения требуется исполняемый бит.

Сценарий выше был в порядке, но что произойдет, если вы хотите отобразить кавычки?

Есть разные способы достичь этого. Например, вы можете поставить обратную косую черту перед кавычками следующим образом:

 echo \ "hello world \" 

Это произведет вывод “привет мир”.

Подождите минутку, а что если вы хотите отобразить \ “привет мир \”?

Ну, вы также можете избежать побег персонажей

 echo \\ "\" hello world \\ "\" 

Это даст выходной \ “Привет, мир \”.

Теперь я знаю, что вы думаете. Но я очень хочу отобразить \\ “\” Привет, мир \\ “\”

Использование echo со всеми этими escape-символами может быть довольно глупым. Существует альтернативная команда, которую вы можете использовать, называемая printf.

Например:

 printf '% s \ n' '\\ "\" hello world \\ "\"' 

Обратите внимание, что текст, который мы хотим отобразить, находится в одинарных кавычках. Команда printf выводит текст из вашего скрипта. % S означает, что он будет отображать строку, \ n выводит новую строку.

Резюме

В первой части мы практически не рассмотрели много вопросов, но, надеюсь, у вас работает ваш первый сценарий.

В следующей части мы рассмотрим усовершенствование скрипта hello world для отображения текста разными цветами, принятия и обработки входных параметров, переменных и комментирования вашего кода.

Оцените статью
Solutics.ru
Добавить комментарий