shell变量与基本流控语句

一环境变量

1 概述

bash shell 使用一种称为环境变量的特性来存储有关shell会话和工作环境的信息,该特性还允许假数据存储到内存中,以便于在shell运行程序或脚本访问他们,这是一种便捷的、用于存储持久型数据的方式,这些数据可以标识用户账号、系统、shell或任何需要存储的内容特性。

2 环境变量的分类

1 当前环境变量

仅对当前环境有效,当重新定义时,其将会消失
shell变量与基本流控语句

2 用户环境变量

当用户切换到普通用户,此环境变量将无效
shell变量与基本流控语句
shell变量与基本流控语句

3 系统环境变量

针对系统的所有用户均有效
查看系统环境变量,
shell变量与基本流控语句
设置系统级环境变量

shell变量与基本流控语句
shell变量与基本流控语句
刷新
shell变量与基本流控语句
shell变量与基本流控语句

二 用户别名

alias

1 环境级别名

shell变量与基本流控语句
shell变量与基本流控语句
重新开启一个窗口,则提示
shell变量与基本流控语句

2 用户级别名:

shell变量与基本流控语句
shell变量与基本流控语句
刷新
shell变量与基本流控语句
本地窗口查看
shell变量与基本流控语句
重新开一个窗口查询,必须重新开,因为其在开启时会读取其中的内容,若使用上次开启的,则别名的定义不会被读入其中:
shell变量与基本流控语句
切换到一般用户,则该指令失效
shell变量与基本流控语句

3 系统级别别名

定义将其写入/etc/bashrc文件中
shell变量与基本流控语句
shell变量与基本流控语句
进行刷新
shell变量与基本流控语句
在root用户下查看全局别名
shell变量与基本流控语句
切换到一半用户模式下进行查看
shell变量与基本流控语句
使用
shell变量与基本流控语句
4 用户别名的删除
1 删除系统级别名
2 删除用户级别名
3 删除
进行文件删除
shell变量与基本流控语句
并刷新查看
shell变量与基本流控语句
进行删除
shell变量与基本流控语句
查看
shell变量与基本流控语句

三 参数传入

1 read 参数传递

shell变量与基本流控语句
如果不指定-p,则显示比较单调
选项
-p : 输出要显示的指令
shell变量与基本流控语句
-s : 表示输入的结果不回显
shell变量与基本流控语句

  • t : 表示不输入的超时时间
  • shell变量与基本流控语句
    -n : 接受的字符个数
    shell变量与基本流控语句

    2 通过在脚本后面加参数的方式传递参数

    $0 表示传入参数的脚本的名称,
    $1 表示传入的第一个参数
    $2 表示传入的第二个参数
    以此类推
    $# 表示传入的参数的个数总和
    $* 表示将传入的所有参数进行整体成一个字符串显示
    $@ 表示将所有的参数单个显示出来
    shell变量与基本流控语句

    3 函数参数的传递

    shell变量与基本流控语句
    其中$1 表示函数调用后面的第一个参数
    $2 表示函数调用后面的第二个参数
    以此类推

四 流控语句

1 if

1 普通if 语句
格式
if
条件
then
动作
fi
2 多分支if语句
if
条件
then
动作
elif
条件
then
动作
...
else
动作
fi
shell变量与基本流控语句
if循环的匹配效率过低,因为其是从上向依次次匹配,相较于case,则if效率更低

2 case

case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac

shell变量与基本流控语句
shell变量与基本流控语句

3 for 循环语句

1 一般格式

for i in 可遍历的对象
do
动作
done
shell变量与基本流控语句
shell变量与基本流控语句

2 特殊格式

for (( i=1 ;i<=9;i++))
do
动作
done
shell变量与基本流控语句
shell变量与基本流控语句

4 while 循环语句

While 循环用于不断执行一系列命令,也用于从输入文件中读取数据,命令糖厂为测试条件,格式为:

1 while 命令格式

While condition
Do
Commanf
Done

2 一般循环

shell变量与基本流控语句
shell变量与基本流控语句
shell变量与基本流控语句
shell变量与基本流控语句

2 死循环

shell变量与基本流控语句
shell变量与基本流控语句

5 expect语句

expect一般用于实现用脚本来自动远程登录,对远程机器执行相关操作

1 安装

shell变量与基本流控语句

2 其脚本的作用是不用起输入yes或no而进行远程登录:

其中上面的 set IP [ lindex $argv 0 ] 表示获取第一个参数的值给IP这个变量
spawn 表示调用ssh root@$IP 这个动作
"yes/no" { send "yes\r";exp_continue} 表示当遇到前面的命令时执行yes并回车
"password" { send "$AUTH\r"} 表示当遇到password时执行后面的命令。
interact 表示进行继续操作,如果不加此参数,则自动退出。而不会登录到node2节点上。
shell变量与基本流控语句
shell变量与基本流控语句

3 expect 语句嵌套进bash语句中

shell变量与基本流控语句
shell变量与基本流控语句

4 运算符

1 (())
shell变量与基本流控语句
2 let
shell变量与基本流控语句
3 expr
shell变量与基本流控语句
4 $ [ $a + $b ],必须加号两边要有空格:
shell变量与基本流控语句
5 bc Linux上的计算机

5 如果编译多行到一个文件中,可以使用cat

cat >文件名 <<\EOF
要插入的文件内容
第一行文字
第二行文字
第三行文字
EOF
6 sleep 函数:用于设置脚本运行的延迟。
shell变量与基本流控语句
7 shift 函数
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在 shift 命令执行前变量 $1 的值在 shift 命令执行后就不可用了。
shell变量与基本流控语句
shell变量与基本流控语句

六 实战案例

1 通过配置文件IP和用户密码的方式自动获取该主机的主机名
shell变量与基本流控语句
shell变量与基本流控语句
shell变量与基本流控语句

2 编写用户的创建和删除脚本

shell变量与基本流控语句
3 编写文件的创建与删除脚本
shell变量与基本流控语句

转载于:https://blog.51cto.com/11233559/2093841

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值