Jim Asked: 2018-03-22 03:04:09 +0800 CST2018-03-22 03:04:09 +0800 CST 2018-03-22 03:04:09 +0800 CST 这个参数扩展有什么作用? 772 以下具体是做什么的? MY_VAR=${MY_INPUT##*$'\n'} bash shell-script 1 个回答 Voted Best Answer Marco Bonelli 2018-03-22T03:13:25+08:002018-03-22T03:13:25+08:00 *\n从存储在 中的字符串的开头删除子字符串的最长匹配项MY_INPUT。请注意,这*是一个通配符,因此结果是MY_INPUT除最后一行之外的每一行都被丢弃,它存储在MY_VAR. $before'\n'放在那里只是为了评估并将其\n视为换行符,而不是字面上的字符\and 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
*\n
从存储在 中的字符串的开头删除子字符串的最长匹配项MY_INPUT
。请注意,这*
是一个通配符,因此结果是MY_INPUT
除最后一行之外的每一行都被丢弃,它存储在MY_VAR
.$
before'\n'
放在那里只是为了评估并将其\n
视为换行符,而不是字面上的字符\
andn
。一些例子:
注意:在第二个示例中,最后一行是空的,所以
MY_VAR
是一个空字符串。根据要求,另一种方法可能是:
或者: