一 shell脚本小案例

xshell脚本 redis查询_服务器

由这个非常简单的小案例,我们可以看出:

在脚本文件的开头,需要加上#!/bin/bash 来定义解释器/bin/bash

该脚本文件应该为可执行的权限,所以应该用chmod +x 脚本文件来增加可执行权限,这样一个最简单的shell脚本就做出来了

二 变量

shell编程中变量可分为三种,分别是系统变量、环境变量和用户变量,在定义变量时,不能以数字开头,中间不能有空格,也不能用标点符号。

定义一个简单变量

xshell脚本 redis查询_运维_02

export设置环境变量。使用export设置的变量就成为了环境变量,而没有使用export 设置的则是自定义变量。但是export命令新增加的环境变量只有在每次登陆的时候有效。 

通过export设置的变量会占用一定的内存空间,例如:

 

xshell脚本 redis查询_环境变量_03

 注:env列出所有环境变量及其赋值

 常用的还有位置变量,使用$n表示,其中n为数字的序列号,例如输出第1,2,4,5个字符,abde在abcdefg中排第1,2,4,5个,所以正常输出abde

 

xshell脚本 redis查询_环境变量_04

 

xshell脚本 redis查询_xshell脚本 redis查询_05

 一个经典小案例是创建用户和密码:

比如编写shell创建用户和密码,第一个变量是用户名,第二个变量是密码,这样这两个变量可以在shell脚本中用$1和$2表示

 

xshell脚本 redis查询_环境变量_06

xshell脚本 redis查询_环境变量_07

 这样就成功创建了一个叫zqr的用户,密码是redhat

shell系统变量,主要是用于对参数判断二号命令返回值判断时使用

$0

当前脚本的名称

$n

当前脚本的第n个参数,n=1,2,…9;

$* 

当前脚本的所有参数(不包括程序本身);

$# 

当前脚本的参数个数(不包括程序本身);

$?

令或程序执行完后的状态,返回0表示执行成功;

$$ 

程序本身的PID号

 

xshell脚本 redis查询_运维_08

xshell脚本 redis查询_运维_09

 也可以将命令的结果复制给一个变量

将nmcli设备状况结果赋值给device这个变量

xshell脚本 redis查询_运维_10

 所有变量在默认情况下,都是字符型,比如设置两个变量a和b,a=1,b=2,c=$a+$b,此时echo $c就是1+2,因为此时1和2都是字符。要想输出3,应该declare -i申明变量类型是int整型。例如:

xshell脚本 redis查询_环境变量_11