下面具体是做什么的?
MY_VAR=${MY_INPUT##*$'\n'}
答案1
*\n
从 中存储的字符串开头删除子字符串的最长匹配项MY_INPUT
。请注意*
是一个通配符,因此结果是MY_INPUT
除了最后一行之外的每一行都被丢弃,最后一行存储在 中MY_VAR
。 before放在那里只是为了评估并将其视为换行符$
,而不是字面上的字符和。'\n'
\n
\
n
一些例子:
MY_INPUT MY_VAR
"a\nb\nc" -> "c"
"a\n" -> ""
"abcde\n\n\ndef" -> "def"
注意:在第二个示例中,最后一行是空的,因此MY_VAR
是一个空字符串。
根据要求,另一种方法可以是:
tail -n1 <<< "$MY_INPUT"
或者:
echo "$MY_INPUT" | tail -n1