1、什么是shell?
image.png2、shell脚本?
就是由命令、变量、流程控制语句等结合起来,形成一个强大的shell脚本。
3、清空日志文件的三种方法?
必须是root用户,无论成功失败都要给出一个提示(echo输出)
1)成功切到目录(cd /etc/log),否则给出提示并终止脚本运行。
2)清除日志
(cat /dev/null >messages)或(>messages)或(echo >messages会多一个空行)
如果成功,并给出提示
4、shell的优势?
在于处理一些偏操作系统底层的业务;特别是linux正则表达式及三剑客:grep, awk, sed等命令
5、bash和sh的区别?
sh是bash的软连接,在脚本的开头"#!/bin/bash"和"#!/bin/sh"是没有什么区别的
6、查看bash版本的命令?
[root@play ~]# bash --version
GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2011 Free Software Foundation, Inc.
许可证 GPLv3+: GNU GPL 许可证版本3或者更高 <http://gnu.org/licenses/gpl.html>
这是自由软件,您可以自由地更改和重新发布。
在法律允许的范围内没有担保.
7、shell脚本的执行?
O~9L3VC4L%Q(}%W)R8R}47E.png1》sh或者bash a.sh
2》 点(.)或者source a.sh
这种方法特别:会将source或 . 执行的变量值传到当前shell中
而sh和bash没有这个功能。
[root@play ~]# cat c.sh
userdir=`pwd`
[root@play ~]# sh c.sh
[root@play ~]# echo $userdir
[root@play ~]# . c.sh
[root@play ~]# echo $userdir
/root
[root@play ~]#
3》sh<a.sh或者cat a.sh|sh
8、shell脚本开发的基本规范习惯
1》第一行:指定解释器
!/bin/bash或者#!/bin/sh
2》shell脚本的开头会加版权,版本等信息
Data:时间
Author: 作者
Blog:联系方式
Description: 这个脚本写的什么
Version:版本
3》在shell脚本中尽量不用中文
4》shell脚本的命令应以 . sh为扩展名
5》shell脚本应放在固定的路径下
9、shell脚本代码的书写的优良习惯
1》成对的符号一次性写出来,防止遗漏
2》中括号() 、[ ]、(( ))
两端至少有一个空格
3》对于流程控制语句,一次性写完,防止遗漏
if 条件内容
then
内容
fi
for
do
内容
done
4》通过缩进让代码更易读
if 条件内容
then
内容
fi
5》对于常规变量的字符串定义变量值应加双引号,并且等于号前后不能有空格
6》脚本中的单引号、双引号、反引号必须为英文符号
10、shell变量
shell变量分为两种:
环境变量(全局变量)和普通变量(局部变量)
环境变量
又称局部变量:可以创建他们的shell及派生的任意子shell使用,
环境变量又分为自定义环境变量和bash内置的环境变量。
设置自定义环境变量格式:
export命令和declare命令
1》export 变量名=变量值
2》变量名=变量值 ; exprot 变量名
3》declare -x 变量名=变量值
显示和取消环境变量
显示:1、通过echo和printf命令打印环境变量
[root@play ~]# oppo=180
[root@play ~]# echo $oppo
180
[root@play ~]# printf "$oppo\n"
180
[root@play ~]# printf "$oppo" 《====如果不加\n
180[root@play ~]#
2、应用env 或set显示默认的环境变量
[root@play ~]# env
XDG_SESSION_ID=3120
HOSTNAME=play
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=10.0.0.1 57602 22
SSH_TTY=/dev/pts/0
USER=root
中间省略
取消:用unset消除本地变量和环境变量
[root@play ~]#
[root@play ~]# oppo=180
[root@play ~]# echo $oppo
180
[root@play ~]# unset oppo
[root@play ~]# echo $oppo
[root@play ~]#
环境变量初始化和对应文件的生效顺序
OY0JJ$0G01WFI5FT~2_B40I.png
普通变量
又称局部变量,只能创建他们的shell函数或者shell脚本中使用。
普通变量一般由开发者在开发脚本程序时创建
11、查看设置的变量值
set命令输出所有的变量(包括全局和局部变量)
env命令只显示全局命令
declare命令输出所有的变量、函数、整数和已经导出的变量
set -o命令显示bash shell的所有参数配置信息
网友评论