one.day_shell编程

2019-05-27  本文已影响0人  1220

1、什么是shell?

image.png

2、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.png

1》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的所有参数配置信息

12、定义的基本技巧总结:

image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读