首先,我想说我已经阅读了这篇帖子,但对于CR行终止符
仍然有问题。
有一个名为build_test.sh
的文件,我用leafpad
编辑过,它可以在Vim
中正确显示:
cp ~/moonbox/llvm-2.9/lib/Transforms/MY_TOOL/$1 test.cpp
cd ~/moonbox/llvm-obj/tools/TEST_TOOL/
make
make install
cd -
然而:
- 使用
cat build_test.sh
输出什么都没有。 - 使用
more build_test.sh
输出:cd - install/llvm-obj/tools/TEST_TOOL/Y_TOOL/$1 test.cpp
- 使用
less build_test.sh
输出:cp ~/moonbox/llvm-2.9/lib/Transforms/MY_TOOL/$1 test.cpp^Mcd ~/moonbox/llvm-obj/tools/TEST_TOOL/^Mmake^Mmake install^Mcd -
file build_test.sh
的结果为:
build_test.sh: ASCII text, with CR line terminators
在这篇文章的帮助下,^M
已经不存在了,但是没有换行符 :-(
现在file build_test_no_cr.sh
的结果为:
build_test_nocr.sh: ASCII text, with no line terminators
解决方案可在此处查看:这里。
然而,我仍然想知道为什么
cat
不显示任何内容,more
显示如此奇怪的结果。另外,为什么dos2unix
和set fileformat=unix
在这种情况下失败了。附注:我猜测可能是我的编辑器(Vim或leafpad?)只生成
\r
而不是\n
作为换行符。这是怎么回事呢?
leafpad
编辑build_test.sh
文件(不要使用 Windows 或 DOS 操作系统)。然后执行dos2unix build_test.sh build_test_nocr.sh
命令,运行file build_test_nocr.sh
命令,得到的输出为build_test_nocr.sh: ASCII text, with CR line terminators
。 - Hongxu Chendos2unix build_test.sh
命令吗?没有效果。我已经更新了问题,希望你能解释一下 :-> - Hongxu Chen\r
-only行终止符是旧的Mac风格终止符。你可以尝试使用mac2unix
代替吗? - fge\n
字符识别为换行符并在显示器上执行适当的操作,而它们会将\r
显示为^M
。终端(好吧,tty)是一个复杂的问题... - fge