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
é quec
será executado não apenas sea
falhar, mas também seb
falhar. Como seub
consiste emecho
declaraçõ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 ".