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

相关推荐

  • 实战自制Linux操作系统

    实战自制Linux操作系统 自制linux系统 步骤概述: 1、新建一个硬盘2、在该新硬盘上新建两个分区,一个当boot分区,一个当/分区3、格式化并且挂载两个分区4、安装grub至目标磁盘5、为grub提供配置文件6、复制内核文件和initrd文件7、创建目标主机根文件系统8、移植bash命令和其库文件到根文件系统9、装载模块,实现网络功能10、启动测试 …

    Linux干货 2016-09-19
  • 第三次作业

    第三次作业 一、软链接与硬链接的区别    硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。 硬链接可由命令 link 或 ln 创建,如: 1 2 #link oldfile newfile  #ln oldfile newfile   由于硬链接是有着相同 i…

    Linux干货 2016-08-03
  • shell脚本编程之函数、case语句

    一、函数 调用函数前必须先定义,调用时仅使用函数名即可。 语法: function  函数名 {      函数体 } 也可表示为: 函数名 () { 函数体 } 示例:写一个脚本,判定网络内有哪些主机在线,在线的用绿色显示,不在线的用红示表示: c_net&…

    Linux干货 2015-08-24
  • glob及IO重定向

    globbing: 文件名通配     匹配模式:元字符           *:匹配任意长度的任意字符    pa* ,*pa* ,*pa,  *p*a*    pa, paa, passwd    ?:  …

    Linux干货 2016-12-21
  • Linux的文本处理工具及grep正则表达式的使用

    文本处理工具及grep正则表达式的使用 本章节学习的内容: 1、各种文本工具来查看、分析、统计文本文件 2、grep正则表达式 3、扩展正则表达式 一、抽取文本的工具: 1、按文件内容:less和cat 2、按文件截取:head和tail 3、按列抽取:cut 4、按关键字抽取:grep 二、文件查看命令:cat, tac,rev 1、命令cat: (1)文…

    Linux干货 2016-08-05
  • 逻辑卷实战演练

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录 3、扩展testlv…

    Linux干货 2016-09-01