70,035
社区成员
发帖
与我相关
我的任务
分享
1. Linux 上的如果你用引号引起来,则只有引号内的内容会输出,引号本身被忽略(图见2.1)。
Windows 的 echo 会对后面的内容原样输出,即任何单引号都会直接输出(图见2.2)。
2. 所有的字符串末尾都多出来一个换行符,这一点在你的输出中也有体现。
测试发现问题正在于此。就比如你的:
明显最后的命令由于两个字符串尾部都存在换行符,变成了三行。
那么不同的系统上就会出现不同情况:
2.1 如果在 Linux 上,这样的确是正常的。在 Linux shell 中,如果输入的命令中包含奇数个引号,则按下换行并不会执行,在遇到配对的结束引号之前,可以继续输入内容并换行。命令最终执行完成,输出所有引号范围内的内容。在 Ubuntu on Windows 上实测如下:
所以在 Linux 上执行,以上命令最终将三行内容:
注意,包括末尾的空行也算一行,输出到文件中。
2.2 在 Windows 上,分解为三个独立的行来执行:第一行:原样输出“'chongshiyici”;
第二行:“ Tue Oct 30 11:45:06 2018”找不到命令;
第三行“' >> reports.log”找不到命令。
因此,最终文件里什么都没有。[/quote]
谢谢解答,程序学习的道路还要学很多,要多动脑筋。


1. Linux 上的如果你用引号引起来,则只有引号内的内容会输出,引号本身被忽略(图见2.1)。
Windows 的 echo 会对后面的内容原样输出,即任何单引号都会直接输出(图见2.2)。
2. 所有的字符串末尾都多出来一个换行符,这一点在你的输出中也有体现。
测试发现问题正在于此。就比如你的:
明显最后的命令由于两个字符串尾部都存在换行符,变成了三行。
那么不同的系统上就会出现不同情况:
2.1 如果在 Linux 上,这样的确是正常的。在 Linux shell 中,如果输入的命令中包含奇数个引号,则按下换行并不会执行,在遇到配对的结束引号之前,可以继续输入内容并换行。命令最终执行完成,输出所有引号范围内的内容。在 Ubuntu on Windows 上实测如下:
所以在 Linux 上执行,以上命令最终将三行内容:
注意,包括末尾的空行也算一行,输出到文件中。
2.2 在 Windows 上,分解为三个独立的行来执行:第一行:原样输出“'chongshiyici”;
第二行:“ Tue Oct 30 11:45:06 2018”找不到命令;
第三行“' >> reports.log”找不到命令。
因此,最终文件里什么都没有。[/quote]