AI智能
改变未来

Shell编程常见报错(一)


编写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/bashgroupadd myquotagrpfor username in myquota1 myquota2 myquota3 myquota4 myquota5douseradd -g myquotagrp ${username}echo \"password\" | passwd --stdin ${username}donemkdir /home/myquotachgrp myquotagrp /home/myquotachmod 2770 /home/myquota

本文到这里就结束啦,后面学习shell的时候遇到问题或者有新的shell技巧会继续更新

脚本下载

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Shell编程常见报错(一)