line 一: ?echo: command not found
line 1: ?echo: command not found在Linux中新建test.sh,然后在里面如下如下:echo qqqqecho wwww执行
line 1: ?echo: command not found
在Linux中新建test.sh,然后在里面如下如下:
echo 'qqqq'
echo 'wwww'
执行脚本后 sh test.sh 结果如下两行,
test.sh: line 1: ?echo: command not found
wwww
发现echo第一行都执行报错 不知道大拿们有没有遇到此问题,谢谢大家; 大牛能讲下其中原理么 跟直接vi输入的有什么区别
[解决办法]
如果你是在vi里面一个字母一个字母输入的,应该也没问题。
可能你是用复制粘贴的,就可能引入“换行”符导致的问题
我在网上搜索了一下,你可以看看这个网页http://blog.163.com/chenglian_999@126/blog/static/760002792010730104951277/
[解决办法]不是重定向吗
[解决办法]嗯,用重定向的方法来验证是否是由CRLF导致的问题。
楼主的环境里面没有dos2unix的命令,相对于安装一个dos2unix然后再去验证的方案,这种用重定向去验证的方案更容易进行。
[解决办法]用cat -A可以看吗
[解决办法]
不是重定向吗
嗯,用重定向的方法来验证是否是由CRLF导致的问题。
楼主的环境里面没有dos2unix的命令,相对于安装一个dos2unix然后再去验证的方案,这种用重定向去验证的方案更容易进行。
用cat -A可以看吗
可以
$] todos test_new.sh
$] cat -A test_new.sh
echo 'qqqq'^M$
echo 'wwww'^M$
$] fromdos test_new.sh
$] cat -A test_new.sh
echo 'qqqq'$
echo 'wwww'$
[解决办法]vi打开,:set fileformat=unix,和dos2unix一个意思