dos2unix 后面跟文件名称
目录
实例如下
[^_^][root@node01 ~]# cat useradd_nginx.sh
#!/bin/bash
groupadd nginx -g 500
useradd nginx -u 500 -s /sbin/nologin -M -g nginx
查看这个脚本没有一点问题
[^_^][root@node01 ~]# sh useradd_nginx.sh
'roupadd: invalid group ID '500
' does not existnginx
运行发现错误了
另一台主机直接复制粘贴node01主机脚本的命令 发现可以且没有问题
[^_^][root@node02 ~]# groupadd nginx -g 500
[^_^][root@node02 ~]# useradd nginx -u 500 -s /sbin/nologin -M -g nginx
[^_^][root@node02 ~]# id nginx
uid=500(nginx) gid=500(nginx) groups=500(nginx)
[^_^][root@node02 ~]#
返回到node01主机
[T_T][root@node01 ~]# vim -b useradd_nginx.sh
#!/bin/bash^M
groupadd nginx -g 500^M
useradd nginx -u 500 -s /sbin/nologin -M -g nginx^M
vim -b
一种查看方式 (在vi编辑器里看到的)
cat -v 这是另一种查看方式
这种是在命令行可视的
[T_T][root@node01 ~]# cat -v useradd_nginx.sh
#!/bin/bash^M
groupadd nginx -g 500^M
useradd nginx -u 500 -s /sbin/nologin -M -g nginx^M
发现这些命令行后面都有了一个^M
可是vi编辑器里没法修改 怎么办?来看解决方法
再看一下文件类型 发现多了一个显眼的字眼 CRLF
[^_^][root@node01 ~]# file useradd_nginx.sh
useradd_nginx.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators
解决方法如下
[^_^][root@node01 ~]# dos2unix useradd_nginx.sh
dos2unix: converting file useradd_nginx.sh to Unix format ...
再查看一下文件类型 发现没了CRLF
[^_^][root@node01 ~]# file useradd_nginx.sh
useradd_nginx.sh: Bourne-Again shell script, ASCII text executable
而且也没了^M 再运行一下脚本
[^_^][root@node01 ~]# cat -v useradd_nginx.sh
#!/bin/bash
groupadd nginx -g 500
useradd nginx -u 500 -s /sbin/nologin -M -g nginx
[^_^][root@node01 ~]# sh useradd_nginx.sh
[^_^][root@node01 ~]# tail -1 /etc/passwd
nginx:x:500:500::/home/nginx:/sbin/nologin
成功解决