No traço . Você usou recursos do bash que o traço não suporta. O Dash e o Bash têm os mesmos recursos centrais, mas o traço se limita a esses recursos principais para ser rápido e pequeno, enquanto o bash acrescenta muitos recursos com o custo de exigir mais recursos. É comum usar dash para scripts que não precisam dos recursos extras e bash para uso interativo (embora zsh tem muitos recursos mais agradáveis ).
O Dash não tem arrays, nem o declare
integrado, por isso está bombardeando nessa linha. Você pode colocar a lista de caminhos em linha:
for dir in "$HOME/bin" "$HOME/.cabal/bin" "/opt/vert.x/current/bin"; do
if [ -d "$dir" ]; then
PATH="$dir:$PATH"
fi
done
Consulte manter duplicados fora de $ PATH na origem se você quiser ter certeza de não ter entradas duplicadas.
Em vez de adicionar novos diretórios ao PATH para cada programa que você instala, convém configurar os links simbólicos em um diretório existente. Para ~/.cabal/bin
, você desejará tê-lo em seu caminho porque os executáveis estarão indo e vindo; Eu coloquei no final do PATH, para evitar possíveis conflitos com os programas existentes em seu sistema. ~/bin
já está no seu PATH no Ubuntu. Para programas que você instala manualmente, como o vert.x, stow ou xstow é bom para gerenciar links simbólicos. Consulte Como acompanhar os programas para uma introdução ao armazenamento.