Shell编程常见报错(一)
编写Shell遇到syntax error near unexpected token `$’do\r”由于该脚本文件是在windows环境下创建编辑的,其默认是将所有的回车变成:CR加上 LF,而Linux/Unix中的回车只是LF.所以导致解释器不认.出现此错误。**解决办法:**将所有的CRLF转换为LF即可。通俗一点讲就是win系统的回车和linux的回车不一样 要想正常在linux上正常
·
编写Shell遇到syntax error near unexpected token `$’do\r”
由于该脚本文件是在windows环境下创建编辑的,其默认是将所有的回车变成:CR加上 LF,而Linux/Unix中的回车只是LF.所以导致解释器不认.出现此错误。
**解决办法:**将所有的CRLF转换为LF即可。
通俗一点讲就是win系统的回车和linux的回车不一样 要想正常在linux上正常运行脚本 就需要做一下转换就行
网上方法很多
博主这里主要介绍的是dos2unix
dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令
用法如下
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
选项与参数:
-k :保留该文件原本的 mtime 时间格式 (不更新文件上次内容经过修订的时间)
-n :保留原本的旧档,将转换后的内容输出到新文件,如: dos2unix -n old new
这里选项参数只列出两个,详细参数可参考网上介绍
我们在文件目录下进行转换
dos2unix -k addacount.sh
博主这里的脚本是批量创建账号的小脚本,学习测试用的,这里贴出来给小伙伴看看
#!/bin/bash
groupadd myquotagrp
for username in myquota1 myquota2 myquota3 myquota4 myquota5
do
useradd -g myquotagrp ${username}
echo "password" | passwd --stdin ${username}
done
mkdir /home/myquota
chgrp myquotagrp /home/myquota
chmod 2770 /home/myquota
本文到这里就结束啦,后面学习shell的时候遇到问题或者有新的shell技巧会继续更新
更多推荐
已为社区贡献2条内容
所有评论(0)