是的,不同之处在于,在第一种情况下,文件以 \n (新队)。
\n
BBBBBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF my_user$
在这种情况下,它没有新行,所以它打印的下一件事是你的使用(实际上你的 PS1 )
PS1
CGAGGTTTCACCATGTTGGCCAGGCTGmy_user$
你可以试试这个:
echo "CCCFFADFHHHHH" # <--- implicitly includes newline at the end echo -n "CCCFFADFHHHHH" # <--- does not include newline at the end
实际上有两个终端选项, \r 和 \n 根据您的操作系统有不同的标准。我会假设你正在研究linux而且只是 \n 用来。所以在这个例子中换行符是 0x0a (数字10)在ascii地图中。
\r
0x0a
如果你想知道每个文件的最后一个字符,你可以这样做:
echo -n "CCCFFADFHHHHH" > uglyfile.txt echo "CCCFFADFHHHHH" > nicefile.txt for file in *.txt; do echo -n "$file ends with: 0x"; tail -c 1 $file | xxd -p; done;
如果您想知道哪些文件以不是换行符的char结尾,您可以执行以下操作:
echo -n "CCCFFADFHHHHH" > uglyfile.txt echo "CCCFFADFHHHHH" > nicefile.txt for file in *.txt; do lastchar_hex=`tail -c 1 $file | xxd -p` if [[ $lastchar_hex != '0a' ]]; then echo "File $file does not end with newline" fi; done;