美文网首页
one.day_shell编程

one.day_shell编程

作者: 1220 | 来源:发表于2019-05-27 22:41 被阅读0次

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

相关文章

  • one.day_shell编程

    1、什么是shell? 2、shell脚本? 就是由命令、变量、流程控制语句等结合起来,形成一个强大的shell脚...

  • 编程方式

    穷举编程 ccv编程 百度编程 谷歌编程 gayhub编程 guess编程 no think 群友编程 小黄鸭调试...

  • 《Python语言程序设计》第一章.练习与作业

    编程题 1.1 编程题 1.2 编程题 1.3 编程题 1.4 编程题 1.5 编程题 1.6 编程题 1.7 编...

  • 探秘Spring AOP

    编程范式概览 面向过程编程 面向对象编程 函数式编程 事件驱动编程 面向切面编程 AOP是什么 是一种编程范式,不...

  • 探秘Spring AOP

    编程范式概览 主要有面向对象编程、面向过程编程、函数式编程、事件驱动编程、面向切面编程。面向过程编程是以过程为中心...

  • python面向对象1

    编程思想 编程思想:面向过程编程(穷人思想)、函数式编程、面向对象编程(富豪) 面向过程编程: 算法和逻辑 函数式...

  • 函数式编程-前置知识(1)

    什么是函数式编程 函数式编程是编程范式之一,我们常听说的编程范式还有面向过程编程,面向对象编程。 面向对象编程的思...

  • 面向指针编程(一)

    面向对象编程,面向设计模式编程(亦即设计模式),面向接口编程,面向模板编程(亦即泛型编程),面向函数编程(亦即函数...

  • AOP

    一、概述 编程范式概述 面向过程编程 面向对象编程 面向切面编程 函数式编程 事件驱动编程(GUI) 主要解决问题...

  • Rxjava总结

    概念 函数式编程就是一种编程范式,常见的编程范式有命令式编程 函数式编程 和逻辑式编程。。。常见的面向对象编程是一...

网友评论

      本文标题:one.day_shell编程

      本文链接:https://www.haomeiwen.com/subject/sdektctx.html