20171123 Shell编程

Shell编程的基本知识点

一、shell编程

shell编程就是对一堆Linux命令的逻辑化处理

1. 变量

(1) 定义变量,类如:name=”zhao” ,”=”两边不用空格隔开,后面的变量需要使用” “,否则会                            有可能出现错误;

shell2

可以使用echo 来显示变量的值:echo $变量名,类如:

s1

(2)可以使用$来引用系统中已经存在的变量、常量,类如显示$ PS1:

s2

(3)可以使用命令来当变量,是一种命令调用命令的形式:

s3

(4)同样的也可以使用文章当作变量

s4

(5)unset 是用来删除变量的,unset 变量名 ,类如unset $name:

s5

(6)进程的相关知识:

用pstree可以查看当前的进程树

用echo $$可以查看当前的进程数

(7)

局部变量:生效的范围为当前的进程,对其他进程包括当前进程的子进程都无效

s6

环境变量(全局变量):生效范围为当前进程及其子进程都有效

环境变量的定义有两种:(1)使用export name=VALUE

(2)使用declare -x name=VALUE

export name=”zhao”

declare -x name=”lg”

s7

s8

(8)set 查看系统中所有的变量,函数,用export,declare和env查看系统中的环境变量

(9)只读模式(常量)只能声明,但不能修改,其的定义,有两种:

(1)readonly name=“VALUE”

(2)declare -r name=“VALUE”

s9

使用readonly -p 查看只读模式

(10)注意点()                                          sh

2.shell编程

(1)使用程序来查看环境变量:

#!/bin/bash
n=son
echo “p.sh:name=$n”                             echo “son=$n”
son.sh

(2)编写脚本/root/bin/systminfo.sh,显示出当前主机系统信息:

#!/bin/bash
echo “The informations :
the hostname is:`hostname`
the IPv4 is:`ifconfig ens33|grep -o “[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.                                                                            [0-9]\{1,3\}”|head -n1`
the system release is:`cat \/etc\/centos-release`
the banben is :`uname -r`
the CPU is :`lscpu|grep “Model name”|cut -d: -f2`
the neicun is :
`df -h |grep “/dev/sda*”`

(3)编写脚本/root/bin/backup.sh,可实现每天将/etc/目录下备份到/root/etcYYYY-mm-dd中:

sh2

(4)编写脚本/root/bin/disk.sh,显示当前硬盘分区 中空间利用率最大的值:

#!/bin/bash
df -h |grep sda*|tr -s ” “|cut -d ” ” -f5|sort -n|tail -n1

(5)退出状态值

0代表成功,1-255代表失败,也可以通过exit[n]来自己设定值

使用$?来保存最近的命令退出状态

(6)位置 变量:在脚本的代码中调用命令行传递给脚本的参数

$1代表第一个参数,$2代表第二个参数,$n代表第n个参数

$0:命令本身 , $*代表传递给脚本的所有命令

$@:传递给脚本的所有参数,每个参数是一个独立的参数

set清空所有的变量

sh3

(7)新建文件,自动添加文件介绍等内容:

#!/bin/bash
date=`date +%F`
echo “#Filename: $1”
echo “#Revision: 1.0”
echo “#Language: bash shell”
echo “#Author : $2”
echo “#Date : $date”
touch $1
chmod +x $1
vim $1 +

4.  bash中的算数运算:

(1)bash中支持:+,-,*,/,% ,**等运算

(2)let var=表达式

sh4

(3)$[ 表达式]

sh5

(4)$((表达式))

sh6

(5)expr 是一个命令,所以参数之间需要分开

sh7

(6)echo  “算数表达式”| bc

sh8

(7)自增自减

++    —    +=    -+

sh9

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88829

(0)
zss123456zss123456
上一篇 2017-11-23 16:50
下一篇 2017-11-23

相关推荐

  • N21 第八周 总有刁民想害朕

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它…

    Linux干货 2016-09-15
  • 源码包编译安装

    程序包编译安装:      Application-VERSION-release.src.rpm–> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装      源代码 –> 预处理 –> 编译 &#8…

    Linux干货 2016-08-23
  • N25-第4周作业(用户权限,grep用法)

    复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有访问权限.      [root@bogon ~]# chmod -R o=—,g=— /home/tuser1/ [root@bogon ~]# chmod -R o=,g= /home/tuser1/ 编辑/etc/…

    Linux干货 2016-12-26
  • Kernel——linux的核心

    Linux Kernel: CentOS 启动流程:POST –> BootLoader(BIOS,MBR) –>Kernel(initrd) –> rootfs –> switch_root –> /sbin/init     …

    Linux干货 2016-09-11
  • 软链接与硬链接的区别

      这两牵扯到链接,那么先介绍以下链接。   在文件系统中,有一种可以把不同的文件相连接到一起的机制,这个机制叫做链接。通俗的话来说就是打开两个不同的文件夹,其实进去的是同一个。它可以把一个文件用不同的名字和路径来表示出来。系统通过inode(索引节点,文件唯一标识)来识别是否为同一个文件,无论系统上有有多少个链接,在磁盘上只有一个唯一的…

    2017-05-25
  • 马哥教育网络班21期第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i nologin_user;other_user all_users=`awk -F':'…

    Linux干货 2016-09-19