linux——Shell脚本说明、创建、执行、调试
程序员文章站
2022-07-12 12:07:55
...
一、什么是Shell
shell也是操作系统中的一个软件,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口,系统中的命令用shell去解释shell接收系统回应的输出并显示其到屏幕中
bash = GNU Bourne-Again Shell
二、Shell脚本及其存在的意义
脚本是一种解释型语言
用shell脚本保存执行动作
用脚本判定命令的执行条件
用脚本来实现动作的批量执行
三、脚本的创建、执行、调试
- 创建
一般创建脚本时,需要注明创建的信息——创建者、版本(手动填写)、邮箱、时间、描述(手动填写)
#!/bin/bash ##幻数
文件不以.sh结尾时,编辑语言没有语法高亮
- 编辑文件时,按F4键会出现以下内容
##################################
# Author: tutu #
# Version: #
# Mail: #
# Date: 2018-06-09 #
# Description: #
# #
##################################
#!/bin/bash
[aaa@qq.com mnt]# vim file.sh
##编辑文件时,按F4键会出现以下内容
[aaa@qq.com mnt]# cat file.sh
##################################
# Author: tutu #
# Version: #
# Mail: #
# Date: 2018-06-09 #
# Description: #
# #
##################################
#!/bin/bash
-
在编辑以.sh新文件时会自动出现信息,旧文件不会出现
[root@client mnt]# vim /etc/vimrc
[root@client mnt]# cat /etc/vimrc | tail -n 14
"map <F4> ms:call WESTOS()<cr>'s ##注释掉
autocmd BufNewFile *.sh exec ":call WESTOS()"
##在编辑以.sh新文件时会自动出现,旧文件不会出现
func WESTOS ()
call append(0,"##################################")
call append(1,"# Author: tutu".(" #"))
call append(2,"# Version: ".(" #"))
call append(3,"# Mail: ".(" #"))
call append(4,"# Date: ".strftime("%Y-%m-%d").(" #"))
call append(5,"# Description: ".(" #"))
call append(6,"# ".(" #"))
call append(7,"##################################")
call append(8," ")
call append(9,"#!/bin/bash")
endfunc
-
调试与执行
首先创建一个脚本
[aaa@qq.com mnt]# vim date.sh
[aaa@qq.com mnt]# cat date.sh
##################################
# Author: tutu #
# Version: #
# Mail: #
# Date: 2018-06-12 #
# Description: #
# #
##################################
#!/bin/bash
date
[aaa@qq.com mnt]#
进行调试与执行
[root@localhost mnt]# sh -x date.sh ##调试
[root@localhost mnt]# /mnt/date.sh ##失败,没有可执行权限
[root@localhost mnt]# sh /mnt/date.sh
##成功,没有可执行权限仍然可以
[root@localhost mnt]# chmod +x /mnt/date.sh
[root@localhost mnt]# /mnt/date.sh ##成功
练习:
- 创建一个脚本——建立用户并添加密码,用户存在时不建立,不存在时建立
[root@localhost mnt]# sh user_create.sh
Please input a username and password after script!!
[root@localhost mnt]# id tutu
id: tutu: no such user
[root@localhost mnt]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@localhost mnt]# sh user_create.sh student student
student is exist!!
[root@localhost mnt]# sh user_create.sh tutu tutu
Changing password for user tutu.
passwd: all authentication tokens updated successfully.
[root@localhost mnt]#