Guía para principiantes a BASH - Parte 1 - Hello World

Hai moitas guías en internet que amosan como crear scripts Shell usando BASH e esta guía ten como obxectivo dar un xiro lixeiramente diferente porque está escrito por alguén que ten moi pouca experiencia no script de shell.

Agora podes pensar que esta é unha idea tonta, pero creo que algunhas guías falan contigo coma se xa fose un experto e outras guías tardan moito en cortarlle á persecución.

Aínda que a miña experiencia de script de shell LINUX / UNIX é limitada, son un desenvolvedor de software polo comercio e son unha boa man en linguaxe de script, como PERL, PHP e VBScript.

O punto desta guía é que aprenderás a medida que aprendo e calquera información que recolle eu vouche contigo.

Comezando

Evidentemente, hai moita teoría que podo transmitir de inmediato, como describir os diferentes tipos de casca e as vantaxes de usar BASH sobre KSH e CSH.

A maioría da xente ao aprender algo novo quere ir e comezar con algunhas leccións prácticas primeiro e con isto en mente non vou darche con curiosidades que agora non son importantes.

Todo o que precisa para seguir esta guía é un editor de texto e un terminal que executa BASH (o shell por defecto na maioría das distribucións de Linux).

Editores de texto

Outras guías que leño suxeriron que precisas un editor de texto que inclúe a codificación de cores das ordes e os editores recomendados son VIM ou EMACS .

A codificación de cores é agradable, xa que destaca os comandos mentres os escribe, pero para o principiante absoluto pode pasar as primeiras semanas aprendendo VIM e EMACS sen escribir unha única liña de código.

Dos dous prefiro EMACS pero para ser sincer prefiro usar un editor sinxelo como nano , gedit ou leafpad.

Se está a escribir scripts no seu propio computador e sabe que sempre terá acceso a un entorno gráfico entón pode elixir o editor que funcione mellor para vostede e pode ser gráfico, como GEdit ou un editor que se executa directamente no terminal como nano ou vim.

Para os efectos desta guía, estarei usando nano xa que está instalado de forma nativa na maioría das distribucións de Linux e, polo tanto, é probable que teña acceso a ela.

Apertura dunha fiestra de terminal

Se está a usar unha distribución de Linux con escritorio gráfico, como Linux Mint ou Ubuntu, pode abrir unha ventá de terminal premendo CTRL + ALT + T.

Onde poñer os seus guións

Para os fins deste tutorial pode poñer os seus scripts nun cartafol baixo o seu cartafol persoal.

Dentro dunha xanela de terminal asegúrate de estar no teu cartafol persoal escribindo o seguinte comando:

cd ~

O comando cd significa o directorio de cambios ea tilde (~) é un atallo para o seu cartafol persoal.

Podes comprobar que estás no lugar correcto escribindo o seguinte comando:

pwd

O comando pwd diralle o teu directorio de traballo actual (onde estás na árbore de directorios). No meu caso volveu / home / gary.

Agora, obviamente, non quererá poñer os seus guións directamente no cartafol persoal para crear unha carpeta chamada scripts escribindo o seguinte comando.

guións mkdir

Cambia ao novo cartafol de scripts escribindo o seguinte comando:

scripts de cd

O teu primeiro guión

É costume ao aprender a programar para que o primeiro programa simplemente saia as palabras "Hello World".

Dende o cartafol de scripts introduza o seguinte comando:

nano helloworld.sh

Agora introduce o seguinte código na fiestra de nano.

#! / bin / bash echo "hello world"

Preme CTRL + O para gardar o ficheiro e CTRL + X para saír do nano.

O propio guión componse do seguinte xeito:

O #! / Bin / bash debe incluírse na parte superior de todos os scripts que escribiu, xa que permite que os intérpretes e o sistema operativo saiban manexar o ficheiro. Basicamente, lembre de poñelo e esquecer por que o fas.

A segunda liña ten un único comando chamado eco que produce o texto que o segue inmediatamente.

Teña en conta que se desexa mostrar máis dunha palabra cómpre usar comiñas dobres (") ao redor das palabras.

Agora podes executar o script escribindo o seguinte comando:

sh helloworld.sh

Deberían aparecer as palabras "hello world".

Outra forma de executar scripts é a seguinte:

./helloworld.sh

As posibilidades son que se executas ese comando no teu terminal de inmediato recibirás un erro de permisos.

Para conceder permisos para executar o script deste xeito, escriba o seguinte:

sudo chmod + x helloworld.sh

Entón, o que realmente pasou alí? ¿Por que puideron executar sh helloworld.sh sen cambiar permisos senón correr ./helloworld.sh causou un problema?

O primeiro método carga o intérprete bash que leva o helloworld.sh como entrada e traballa para que faga con el. O intérprete de bash xa ten permisos para executar e só precisa executar os comandos no script.

O segundo método permite que o sistema operativo determine o que facer co guión e, polo tanto, require un bit executable para executar.

O guión anterior estaba ben pero que pasa se queres amosar as comiñas?

Hai varias formas de conseguir isto. Por exemplo, pode poñer unha barra invertida antes das comiñas como segue:

eco \ "ola mundo \"

Isto producirá a saída "hello world".

Espera un minuto, e se queres amosar \ "hello world \"?

Ben, pode escapar tamén dos personaxes de escape

eco \\ "\" hello world \\ "\"

Isto producirá a saída \ "mundo de ola \".

Agora sei que estás pensando. Pero realmente quero mostrar \\ "\" hello world \\ "\"

Usar eco con todos estes personaxes de escape pode ser bastante tonto. Hai un comando alternativo que pode usar chamado printf.

Por exemplo:

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

Teña en conta que o texto que queremos mostrar está entre citas simples. O comando printf produce texto do seu script. O% s significa que mostrará unha cadea, a \ n expón unha nova liña.

Resumo

Non cubrimos moito terreo na primeira parte, pero esperamos que teña o seu primeiro guión funcionando.

Na seguinte parte veremos mellorar no guión mundial de Ola para mostrar o texto en diferentes cores, aceptar e manexar parámetros de entrada, variables e comentar o seu código.