syntax error near unexpected token `do

这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n"
可以使用
cat -v 文件名

来查看换行符是否是。如果是上述的,则行结尾会是^m,需要转换成linux/unix格式的"\n"。

#!/bin/sh^M ^M #frist^M #test script ^M #auther data^M ^M for file in *^M do^M
if grep -q POSIX $file^M
then^M
echo $file^M
fi^M done^M ^M

具体转换办法就是转换换行符 可以用sed命令处理一下文件,命令如下:

sed 's/\r//' 原文件 > 转换后文件
这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值