我试图理解特定的 echo 语句的作用

我试图理解特定的 echo 语句的作用

我试图了解第二个 echo 语句的确切作用(它是一个现有脚本)。

echo "Triggering report.. "
curl -s -X POST "http://aaa.bbb"
echo -e \ '\
'

我读到这-e可以使反斜杠转义。但是,不知道为什么外面有一个反斜杠,也不知道为什么引号里面只有一个反斜杠而不是 \n

答案1

第二个echo相当于以下更便携的命令:

printf ' \\\n\n'

这会输出一个空格、一个反斜杠和两个换行符。

作为比较,该echo命令通过输出转义空格以及文字反斜杠和文字换行符来输出这些字符。默认情况下,第二个换行符会添加到输出中echo。初始空格需要转义,因为它不是任何带引号的字符串的一部分(否则,它会被 shell 将命令拆分为单词而删除),并且反斜杠需要位于单引号字符串中,否则它会转义下一个字符。

-e命令中使用的选项在这里不执行任何操作,可以删除。

echo(in bash)的等效公式:

echo -e ' \\\n'
echo ' \
'
echo -n -e ' \\\n\n'
echo -n ' \

'

也可以看看:

相关内容