Original de MacLeod Cartoons:


Uma porção interessante do tráfego neste blog vem de pesquisas sobre o logotipo de reciclagem, principalmente devido a este artigo Reciclagem de logotipos. Por isso decidi tornar essas visitas úteis, em vez de serem um “desapontamento”.
Portanto, sem mais demora, aqui estão os logotipos universal de reciclagem e o ponto verde.

GreenDot (WikiPedia)

Green dot symbol
Esta imagem provem da Open Clip Art Library, que é explicitamente dominio público, usando a licença Creative Commons Public Domain Dedication

[Original URL] [SVG (zip)]

Universal Recycling Symbol (WikiPedia)

Universal Recycling
Esta imagem estava anteriormente no dominio público, ou com uma licença livre. Foi digitalmente alterada. Esta obra derivada foi tornada dominio público pelo seu autor, Cbuckley do projecto WikiPedia em Inglês. Isto é válido globalmente. Nas jurisdições em que tal não for possível, Cbuckley deu direitos de uso da obra, para qualquer uso legal, sem condições.

[SVG (zip)]

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:


1
2
3
source_if_exists () {
    for i_; do test -f "$i_" && source "$i_"; done
}

Desta forma pode tentar incluir os fragmentos apenas onde e quando existem:


1
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:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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:


1
2
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.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
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:


1
2
unique_path PATH
unique_path MANPATH

%d bloggers like this: