-
Notifications
You must be signed in to change notification settings - Fork 7
Utilitário
O utilitário de linha de comando bashsrc
fornece opções para consulta/gerenciamento do ecossitema, para visualizar as opções digite:
$ bashsrc -h
ou
$ bashsrc --help
Nota: requer configuração do
$BASHSRC_PATH
.
Exemplo:
shsrc: ferramenta para documentação e ambiente.
Uso: bashsrc [OPÇÕES]
Argumentos obrigatórios para opções longas também são para opções curtas.
-l, --list - Lista os sources disponíveis em '$BASHSRC_PATH'.
-e, --env - Exibe o ambiente configurado em '$BASHSRC_PATH'.
-d, --doc <source>[.<function>|<type>] - Exibe a documentação da biblioteca, função ou tipo.
-h, --help - Exibe ajuda e sai.
-c, --check-conflicts - Verifica se há conflito de tipos entre bibliotecas em '$BASHSRC_PATH'.
-v, --version - Exibe a versão e sai.
Desenvolvido por: Juliano Santos [SHAMAN]
Reportar falhas: <shellscriptx@gmail.com.br>
Wiki: <https://github.com/shellscriptx/bashsrc/wiki>
Além das configurações é possível consultar a documentação presente em uma biblioteca atráves do parâmetro -d, --doc
Esse recurso é útil pois permite ao desenvolvedor criar e compartilhar bibliotecas cujo código-fonte é a própria documentação, tal recurso já visto em algumas linguagens como: python, golang entre outras.
Veja as duas formas de consulta:
Geral:
Exibe uma descrição curta de todos os protótipos de declaração de funções, objetos e tipos. (exceto: Metadados).
Para exibir as informaçõs digite:
$ bashsrc --doc <biblioteca>
Nota: a extensão do arquivo deve ser omitida.
Exemplo:
$ bashsrc -d regex
function regex.compile <pattern[str]> -> [bool]
function regex.findall <pattern[str]> <expr[str]> -> [str]|[bool]
function regex.fullmatch <pattern[str]> <expr[str]> <match[map]> -> [bool]
function regex.match <pattern[str]> <expr[str]> <match[map]> -> [bool]
function regex.search <pattern[str]> <expr[str]> <match[map]> -> [bool]
function regex.split <pattern[str]> <expr[str]> -> [str]|[bool]
function regex.groups <pattern[str]> <expr[str]> -> [str]|[bool]
function regex.replace <pattern[str]> <expr[str]> <count[int]> <new[str]> -> [str]|[bool]
function regex.fnreplace <pattern[str]> <expr[str]> <count[int]> <func[function]> <args[str]> ... -> [str]|[bool]
function regex.fnreplacers <pattern[str]> <expr[str]> <count[int]> <func[function]> -> [str]|[bool]
function regex.expand <pattern[str]> <expr[str]> <template[str]> -> [str]|[bool]
function regex.exportnames <pattern[str]> <expr[str]> -> [bool]
map match
type regex_t
Detalhada:
Exibe informações, detalhes e exemplos sobre o objeto especificado.
Para exibir as informações digite:
$ bashsrc --doc <biblioteca>.<objeto>
Nota: a extensão do arquivo deve ser omitida.
Exemplo:
$ bashsrc --doc regex.fnreplace
function regex.fnreplace <pattern[str]> <expr[str]> <count[int]> <func[function]> <args[str]> ... -> [str]|[bool]
Substitui 'N' ocorrências do padrão pelo retorno da função com 'N'args (opcional), passando como
como argumento posicional '$1' o padrão casado. Se 'count < 0' aplica a substtiuição em todas as
ocorrências.
== EXEMPLO ==
source regex.sh
dobrar()
{
# Retorna o dobro do valor casado.
echo "$(($1*2))"
}
expr='valor_a = 10, valor_b = 20, valor_c = 30'
# Valor atual.
echo "$expr"
echo ---
# Substitui somente os números contidos na expressão.
regex.fnreplace '[0-9]+' "$expr" 1 dobrar # 1ª ocorrência
regex.fnreplace '[0-9]+' "$expr" 2 dobrar # 1ª e 2ª ocorrência
regex.fnreplace '[0-9]+' "$expr" -1 dobrar # Todas
== SAÍDA ==
valor_a = 10, valor_b = 20, valor_c = 30
---
valor_a = 20, valor_b = 20, valor_c = 30
valor_a = 20, valor_b = 40, valor_c = 30
valor_a = 20, valor_b = 40, valor_c = 60
- E-mail: shellscriptx@gmail.com
- Juliano Santos (SHAMAN)