bash
expressão condicional -v var
verificar se variável do shell denominada var
está definida.
Ao usar [[ -v $1 ]]
, você realmente verificou se uma variável nomeada pelo conteúdo de $1
foi definida. No seu exemplo, isso significa $cd
, que nunca foi definido.
Você pode simplesmente verificar se $1
é uma string não vazia, usando -n
:
function abash {
if [[ -n "$1" ]]
then
atom ~/Shell/"$1.sh"
else
atom ~/.bashrc
fi
}
Observe que var
deve ser uma variável do shell para -v var
work. [[ -v 1 ]]
nunca funcionará porque 1
é indicado para parâmetro posicional .