linux脚本查看变量类型,Linux初级运维(五)——bash脚本编程(变量、变量类型)...

一、BASH 概念介绍

Bash(GNU Bourne-Again Shell )是许多Linux发行版的默认shell。事实上,还有许多传统UNIX上用的Shell,例如tcsh,csh,ash,bsh,ksh等等,Shell Script大致都类同,当您学会一种shell以后,其他shell就会很快上手。

bash的命令语法是Bourne shell命令语法的超集。数量庞大的Bourne shell脚本大多不经修改即可以在bash中执行,只有使用了Bourne的特殊变量或内置命令的脚本才需要修改。 bash的命令语法很多来自Korn shell (ksh) 和 C shell (csh), 例如命令行编辑,命令历史,目录栈,$RANDOM 和 $PPID 变量,以及POSIX的命令置换语法: $(...)。作为一个交互式的shell,按下TAB键即可自动补全已部分输入的程序名、文件名、变量名等等。

shell具有编程能力。叫做脚本语言。

1、编程语言

编程语言主要分为:机器语言、汇编语言、高级语言

静态语言:编译型语言

强类型(变量)

事先转换成可执行格式

C  、 C++  、JAVA  、C#

动态语言:解释型语言,on the fly

弱类型

边解释边执行

PHP  、SHELL  、Python  、perl

2、编程模型

编程模型主要分为两种:面向对象 和面向过程

面向过程:shell   C

面向对象:JAVA   Python  Perl  C++

二、bash变量

变量赋值  :

本地变量:VAR_NAME =VALUE   (作用范围是整个脚本都有效)

局部变量:local VARNAME=VALUE     (作用域为当前代码段)

环境变量:export VAENAME=VALUE   (作用域为当前shell进程及其子进程)

bash变量的类型有:环境变量、本地变量(局部变量)、位置变量、特殊变量。

1、本地变量

bash:

65a6b482789992b526cdff3f256d6699.png

不同的shell,变量不能继承,父类定义的变量,子类不能继承

c0a7519ed19e8162ccfe53f00bb16a86.png

引用变量:${VARNAME},大部分情况下,大括号可以省略,特殊情况下,大括号不能省略。

9b71e3d9ae5fe661067590a15d293935.png

2、环境变量

环境变量:export VAENAME=VALUE   (作用域为当前shell进程及其子进程)

export VARNAME=VALUE

VARNAME=VALUE

export VARNAME

65b640ba375d6aa4266b5b5a21633eda.png

3、位置变量

$1,$2 ,$3....

4、特殊变量

$? :上一个命令的执行状态返回值。

程序执行,可能有两类返回值:

程序执行结果

程序状态返回代码(0-255)

0:正确执行

1-255:错误执行, 1,2,127 系统预留

4177ae247bbf0a0ef5d619874b32264c.png

5、撤销变量

unset VARNAME

0d8c58ef9a0fbcabb41260cd36abec0c.png

6、查看当前shell中环境变量

set

f5db62bfe4de976b9a963ca944cb1b82.png

7、查看当前shell中的环境变量

printenv

env

export

8 、注意事项

脚本在执行时会启动一个子shell进程;

命令行中启动的脚本会继承当前shell环境变量

系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量

三、shell脚本

脚本是命令的堆砌,按实际需求,结合命令流程控制机制实现的源程序。

shebang:魔数   (#!/bin/bash   环境变量)

#:为脚本中的注释行,不进行执行

46b162f96749041764a0e31ef6976f5b.png

给创建的文件添加执行权限

chmod +x frist.sh

3a8c07f64e95091f1d6ff9f50d117ab9.png

执行脚本文件 ./frist.sh

df59832f10b9cd0219b59b7f998d3427.png

四、练习题

写一个脚本,完成以下任务:

(1)、添加5个用户,user1,user2,...user5

(2)、每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令的执行结果信息

(3)、每个用户添加完成后,都要显示用户某某已经成功添加。

e0f3fab3ef91dde182deb6f80aa6ed22.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值