No shell Bourne, não citar uma variável (ou seja, $var
em vez de "$var"
) deve ser a exceção. O problema aqui é o seu comando echo
. Com echo ?
, ?
é substituído por cada arquivo de uma letra em seu diretório, enquanto com echo "?"
, o ponto de interrogação é exibido como está.
Sua função deve então ser:
parseGitBranch () {
gitBranch=staging
ifUntrackedFiles="$gitBranch ?"
echo "$ifUntrackedFiles"
}
E, como as aspas são fáceis de confundir com aspas simples e difíceis de aninhar, use $(...)
:
PS1='$(parseGitBranch) $ '