Para fazer o comando && - || funcionar, tente:
printf '%s\n' ${startLineNrs[@]} | grep -xq ${startLineNr} && { echo $?; echo Found ;} || { echo $?; echo Not found ;}
Notas:
-
O comando de teste (
[) e a substituição de comando ($(...)) não são necessários. -
Uma subtileza da construção
a && b || cé quecserá executado não apenas seafalhar, mas também sebfalhar. Como seubconsiste emechodeclarações que normalmente devem ser bem-sucedidas, isso normalmente não deve ser um problema. -
Para obter outros métodos para testar a associação à matriz, consulte " Verifique se uma matriz Bash contém um valor ".