Eu acredito que o problema é que você está usando tanto test
quanto [[
test "$(read -p 'Install gtodo? ' R ; echo $R)" = "Y" && (sudo apt-get install gtodo) || (echo "gtodo not installed")
Eu estou tentando executar essa declaração no bash e continuar recebendo erros
test [[ "$(read -p 'Install gtodo? ' R ; echo $R)" == "Y" ]] && (sudo apt-get install gtodo) || (echo "gtodo not installed")
Por favor, qual é a sintaxe correta?
Você escreve test <expresion>
ou [ <expresion> ]
. No seu caso, eu até substituiria o read
antes de test
, para manter a expressão curta:
read -p 'Install gtodo? ' R; test "$R" == "Y" && (sudo apt-get install gtodo) || (echo "gtodo not installed")
Mas aceitará apenas "Y" como resposta possível. Se você alterá-lo para:
read -p 'Install gtodo? ' R; [ "$R" == "Y" ] || [ "$R" == "y" ] && (sudo apt-get install gtodo) || (echo "gtodo not installed")
Ele aceita tanto "Y" quanto "y" como resposta possível.
Tags bash