Jul
30
Jul
29
Jun
4
Se, como eu, sempre tenta organizar e ter uma configuração modular, mais cedo ou mais tarde vai separar a configuração bash em vários ficheiros. Além disso, se quiser usar a mesma em várias máquinas, esta função dá jeito:
source_if_exists () {
for i_; do test -f "$i_" && source "$i_"; done
}
Desta forma pode tentar incluir os fragmentos apenas onde e quando existem:
source_if_exists ${HOME}/etc/bash_completion
Algo que também é comum fazer é acrescentar um directório a uma variável de ambiente. Quando se faz uma configuração para várias máquina é sempre um inconveniente assegurar que os directórios existem. Estas funções tratam do problema:
safe_prepend_path() {
VAR=$1
shift
VAL=$(eval echo \$${VAR})
for i_; do
test -d "$i_" && VAL=$i_${VAL:+":$VAL"}
done
eval export ${VAR}=$(echo ${VAL})
}
safe_append_path() {
VAR=$1
shift
VAL=$(eval echo \$${VAR})
for i_; do
test -d "$i_" && VAL=${VAL:+"$VAL:"}$i_
done
eval export ${VAR}=$(echo ${VAL})
}
Exemplos:
safe_prepend_path PATH /opt/local/bin ${HOME}/bin
safe_append_path MANPATH /opt/local/man ${HOME}/man
É frequente que as variáveis de ambiente com directórios apresentem entradas duplicadas o que torna a pesquisa menos eficiente. Esta função assegura que cada directório ocorre apenas uma vez e retém apenas a primeira entrada, mantendo por isso a ordem.
unique_path() {
eval export $1=$(echo $(eval echo \$${1}) | \
awk -F: \
'{ a[$1]; \
printf "%s",$1; \
for(i=2;i<=NF;i++) { \
if(!($i in a)) { \
printf ":%s",$i; \
}; \
a[$i]; \
}; \
printf "\n"; \
}')
}
Examples:
unique_path PATH
unique_path MANPATH
Apr
17
A Nokia realmente é perita em fazer decisões estranhas. Seria lógico pensar que ao gerir um serviço de email grátis para melhorar a proposta de valor no espaço da telefonia móvel, ao tomar a decisão de passar a sub-contratar esse serviço à Yahoo, que seriam feitas as diligências para garantir que os utilizadores actuais poderiam migrar sem problemas…
Sep
25
Há cinco anos atrás, enquanto conversavamos sobre livros interessantes sobre desenvolvimento de software e afins, uma colega e amiga recomendou-me o livro ” The Soul of a New Machine”. Hoje calhou de folhear a minha cópia do livro e fiquei surpreendido com o quanto ainda lembrava dele.
Ainda para mais, hoje em dia trabalho para a empresa que acabou por adquirir a Data General…
English
Português



Attribution License