Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75827
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 434
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-23 09:31
个人简介

天行健,君子以自强不息;地势坤,君子以厚德载物

文章分类
文章存档

2018年(11)

2017年(30)

我的朋友

分类: LINUX

2017-04-09 22:53:10

bash脚本编程之一变量、变量类型:
1、bash变量类型:
    环境变量
    本地变量
    位置变量
    特殊变量
备注:强变量:内部变量不做转换,‘’;弱变量:内部变量进行转换,“”;
    (1)本地变量:
        bash:
        set VARNAME=VALUE:作用于整个bash进程
    (2)局部变量:local VARNAME=VALUE:作用域为当前代码段;
    (3)环境变量:作用域为当前shell进程及其子进程;
        export VARNAME=VALUE  #"导出变量"
备注:脚本在执行时会启动一个子shell进程:
      命令行中启动的脚本会继承当前shell环境变量;
      系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;

    (4)位置变量:引用脚本参数
    (5)特殊变量:
        $?:上一个命令的执行状态返回值;
            程序状态返回代码(0-255)
            0:正确执行
            1-255:错误执行,1,2,127系统预留;        
2、输出重定向:
    >:正确覆盖重定向
    >>:正确追加重定向
    2>:错误重定向
    2>>:错误追加重定向
    &>:从定向
    输出重定向位置:/dev/null(软件模拟设备)

3、撤销变量:
    unset VARNAME
    
4、查看当前shell中的变量:
    set:
5、查看当前shell中的环境变量:
    printenv或env或export

6、给当前变量赋值:
    例:[root@Ourlab ~]# ANIMAL=pig
        [root@Ourlab ~]# ANIMAL=$ANIMAL:goat
        [root@Ourlab ~]# echo $ANIMAL
        pig:goat

7、引用变量:${VARNAME},括号有时可省略。
    例:[root@Ourlab ~]# ANIMAL=pig
        [root@Ourlab ~]# echo "There are some ${ANIMAL}s."
        There are some pigs.

8、脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序
    shebang:魔数(#!/bin/bash)
    #:注释行,不执行

课后练习:
练习一:写一个脚本,完成以下任务:
1、添加5个用户,user1,....,user5;
2、每个用户的密码同用户名,而要求,添加密码完成后不显示passwd命令的执行结果信息;
3、每个用户添加完成后,都要显示用户某某已经成功添加;
#!/bin/bash

! id user1 &> /dev/null && useradd user1 && echo "user1" | passwd --stdin user1 &>/dev/null || echo "user1 exists."
! id user2 &> /dev/null && useradd user2 && echo "user2" | passwd --stdin user2 &>/dev/null || echo "user2 exists."
! id user3 &> /dev/null && useradd user3 && echo "user3" | passwd --stdin user3 &>/dev/null || echo "user3 exists."

USERS=`wc -l /etc/passwd | cut -d: -f1`
echo "$USERS users"
练习二:写一个脚本,完成以下任务:
1、使用一个变量保存一个用户名;
2、删除此变量中的用户,且一并删除其家目录;
3、显示”用户删除完成“类的信息;
#!/bin/bash
#
NAME=user17
userdel -r $NAME
echo "user17 already deleted."
阅读(702) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~