【24】linux进阶——初识shell

大家好,这里是天亮之前ict,本人网络工程大三在读小学生,拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识,希望能提高自己的技术的同时,也可以帮助到大家

另外其它专栏请关注:

锐捷数通实验:锐捷数通实验

网络工程师成长日志:网络工程师成长日志

it自动化运维:it自动化运维

 一 shell脚本小案例

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

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

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

二 变量

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

定义一个简单变量

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

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

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

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

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

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

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

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

$0

当前脚本的名称

$n 当前脚本的第n个参数,n=1,2,…9;
$*  当前脚本的所有参数(不包括程序本身);
$#  当前脚本的参数个数(不包括程序本身);
$? 令或程序执行完后的状态,返回0表示执行成功;
$$  程序本身的PID号

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

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

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

 “生活的方向无论你如何选择都会后悔,人总向往没经历过的生活”

猜你喜欢

转载自blog.csdn.net/weixin_51338719/article/details/130421236