Como escrever e usar funções e bibliotecas de shell personalizadas

Como escrever e usar funções e bibliotecas de shell personalizadas

No Linux, os scripts de shell nos ajudam de muitas maneiras diferentes, incluindo executar ou até automatizar determinadas tarefas de administração do sistema, criar ferramentas simples de linha de comando e muito mais.

Neste guia, mostraremos novos usuários do Linux onde armazenar scripts de shell personalizados, explicar como escrever funções e bibliotecas de shell personalizadas, usar funções de bibliotecas em outros scripts.

Onde armazenar scripts de shell

Para executar seus scripts sem digitar um caminho completo/absoluto, eles devem ser armazenados em um dos diretórios no $ Caminho variável de ambiente.

Para verificar o seu $ Caminho, Emite o comando abaixo:

$ ECHO $ ​​PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

Normalmente, se o diretório BIN existe em um diretório inicial de usuários, ele é automaticamente incluído em seu $ Caminho. Você pode armazenar seus scripts de shell aqui.

Portanto, crie o BIN diretório (que também pode armazenar Perl, Awk ou Pitão scripts ou outros programas):

$ mkdir ~/bin 

Em seguida, crie um diretório chamado lib (abreviação de bibliotecas) onde você manterá suas próprias bibliotecas. Você também pode manter bibliotecas para outros idiomas, como C, Python e assim por diante. Sob ele, crie outro diretório chamado sh; Isso armazenará particularmente suas bibliotecas de shell:

$ mkdir -p ~/lib/sh 

Crie suas próprias funções e bibliotecas

A Função da concha é um grupo de comandos que executam uma tarefa especial em um script. Eles funcionam da mesma forma que procedimentos, sub -rotinas e funções em outras linguagens de programação.

A sintaxe para escrever uma função é:

function_name () lista de comandos 

Por exemplo, você pode escrever uma função em um script para mostrar o data do seguinte modo:

showdate () date; 

Cada vez que você deseja exibir data, Basta invocar a função acima usando seu nome:

$ showdate 

A Biblioteca Shell é simplesmente um script de shell, no entanto, você pode escrever uma biblioteca para armazenar apenas suas funções que você pode ligar mais tarde de outros scripts de shell.

Abaixo está um exemplo de uma biblioteca chamada libmyfuncs.sh no meu ~/lib/sh Diretório com mais exemplos de funções:

#!/bin/bash #função para listar claramente os diretórios em path showpath () Oldifs = "$ ifs" #store antigo separador de campo interno ifs =: #specify um novo separador de campo interno para dir no $ path; eco $ dir; Concluído ifs = "$ Oldifs" #Restore Antigo separador de campo interno #Function para mostrar o usuário registrado showUsers () echo -e “abaixo estão o usuário conectado ao sistema: \ n” w #Print Detalhes de um usuário PrintuserDets () Oldifs = "$ ifs" #Store Antigo separador de campo interno ifs =: #specifique um novo separador interno de campo Read -p "Digite o nome do usuário a ser pesquisado:" Uname #Read UserName echo "" #Read e armazenar a partir de uma string aqui Valores em variáveis ​​usando: como um delimitador de campo Read -R Nome de usuário Pass UID GID Comentários Homedir Shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator  

Salve o arquivo e faça o script executável.

Como invocar funções de uma biblioteca

Para usar uma função em um lib, você precisa antes de tudo incluir o lib No script do shell, onde a função será usada, no formulário abaixo:

$ ./PATH/TO/LIB ou $ fonte/PATH/TO/LIB 

Então você usaria a função PrintuserDets Do lib ~/lib/sh/libmyfuncs.sh em outro script, como mostrado abaixo.

Você não precisa escrever outro código neste script para imprimir detalhes de um usuário em particular, basta chamar uma função existente.

Abra um novo arquivo com o nome teste.sh:

#!/bin/bash #include lib . ~/lib/sh/libmyfuncs.função sh #use de libirtuserdets #exit script sai 

Salve -o e faça o script executável e execute -o:

Teste $ chmod 755.sh $ ./teste.sh 
Escreva funções de shell

Neste artigo, mostramos onde armazenar scripts de shell de forma confiável, como escrever suas próprias funções e bibliotecas de shell, invocar funções de bibliotecas em scripts normais de shell.

Em seguida, explicaremos uma maneira direta de configurar Vim Como um Ide Para scripts de bash. Até lá, sempre fique conectado ao Tecmint e também compartilhe seus pensamentos sobre este guia através do formulário de feedback abaixo.