谁能告诉我为什么这不起作用:
#!/bin/bash
#
foo="hello
world"
if [[ "$foo" == *"\r\r"* ]]
then
echo "two carriage-returns found"
fi
编辑:弗雷迪和WjAndrea,百万谢!哎呀,我花了几个小时试图使语法正确!
两个原因:
\r
与换行符\n
混淆了>\r
实际上是反斜杠,后跟小写的R,而不是回车因此,您可以使用C-style strings使其与众不同:
if [[ "$foo" == *$'\n\n'* ]]
或放置两个实际的换行符,但这很丑陋:
if [[ "$foo" == *"
"* ]]
您需要检查两个换行符(换行符)\n\n
,然后使用ANSI-C quoting: