bash单双引号解析规则咨询——C语言minishell作业疑问
Bash引号解析逻辑解答
关于""hello""的解析
当输入""hello""并执行echo ""hello""时,bash是拆分为三个连续部分后拼接:
- 第一对双引号
"":开启后立即闭合,对应空字符串 - 中间的
hello:无引号包裹的普通字符 - 第二对双引号
"":同样开启后立即闭合,对应空字符串
因为这三个部分之间没有空格分隔,bash会将它们直接拼接成整体hello,所以最终echo输出hello,并非用外层引号包裹hello的逻辑。
关于" "Hello" "的解析
输入" "Hello" "并执行echo " "Hello" "时,bash的解析过程如下:
- 第一对双引号
" ":开启后闭合,对应三个空格的字符串 - 中间的
Hello:无引号包裹的普通字符 - 第二对双引号
" ":开启后闭合,对应三个空格的字符串
这三个部分因无空格分隔被拼接,最终传给echo的参数是 Hello (前后各三个空格,中间为Hello),既不是"Hello"也不是""Hello"",而是带前后空格的Hello字符串。
内容的提问来源于stack exchange,提问作者user16715270
相关产品推荐
相关产品推荐

