Exclui a correspondência mais longa da substring *\n do início da string armazenada em MY_INPUT . Observe que * é um curinga, portanto, o resultado é que todas as linhas de MY_INPUT são descartadas, exceto a última, que é armazenada em MY_VAR . O $ antes de '\n' é colocado lá apenas para avaliar \n e considerá-lo como uma nova linha em vez de literalmente os caracteres \ e n .
Alguns exemplos:
MY_INPUT MY_VAR
"a\nb\nc" -> "c"
"a\n" -> ""
"abcde\n\n\ndef" -> "def"
Nota: no segundo exemplo, a última linha está vazia, então MY_VAR é uma string vazia.
Conforme solicitado, outra maneira de fazer isso pode ser:
tail -n1 <<< "$MY_INPUT"
ou:
echo "$MY_INPUT" | tail -n1