Autotooling GNU, onde instalar as funções do shell?

4

Eu tenho um pequeno projeto que configura e instala alguns scripts de shell usando o GNU autotools.

Agora, os scripts terão que originar um arquivo comum contendo algumas funções do shell.

Onde esse arquivo deve ser instalado por make install ?

De acordo com " Variáveis para Diretórios de Instalação ", libexecdir é para executável arquivos (o arquivo contendo as funções do shell não é um executável em si) e datadir é para dados independentes de arquitetura (esse arquivo depende da arquitetura).

Existe algum precedente para usar qualquer um desses dois caminhos (ou qualquer outro caminho de instalação) para instalar um arquivo contendo apenas funções do shell? Essas funções não devem ser usadas separadamente no momento.

    
por Kusalananda 26.02.2017 / 10:11

1 resposta

-1

Suas funções a serem instaladas estão no contexto do seu shell.
Então armazene-as lá : ~/.bash_functions

Sempre que seu shell é carregado, ele carrega comandos, ~/.bashrc e até aliases, ~/.bash_aliases . Estes são scripts de shell que simplesmente adicionam comandos à variável PATH do shell ou definem aliases. Scripts de shell que definem funções, para seguir o exemplo, devem ser definidos aqui também.

Em seguida, anexe uma linha ao seu .profile ou .bashrc para garantir que eles sejam carregados para o seu terminal ou apenas no início de seus scripts de shell que dependem deles:

if [ -f ~/.bash_functions ]; then
    . ~/.bash_functions
fi

Anexe funções ao arquivo conforme desejado:

#!/bin/bash
# ~/.bash_functions file
function_one () {
    echo "hi"
}
function_two() {
...
    
por 24.04.2018 / 02:39