您的位置:首页 > 运维架构 > Shell

Linux下Bash编程之变量详解(一)

2016-04-12 18:16 447 查看
Linux下Bash编程之变量详解(一)1.语言分类:
1.1.静态语言:编译型语言
强类型:变量在使用前,必须事先声明,甚至还需要初始化;
编写的程序事先转换成可执行格式
代表有:C、C++、JAVA、C#
动态语言:解释型语言

弱类型:变量用时声明,甚至不区分类型;
编写的程序边解释边执行
代表有: PHP、SHELL、python、perl
1.2.面向过程编程语言:代表有 Shell, C

1.3.面向对象编程语言: 代表有 JAVA, Python, perl, C++
结论:shell属于弱类型编程语言
2.shell编程各变量名称解释
变量:其实是内存空间,即叫命名内存空间

而内存:是编址的存储单元
变量类型:事先确定数据的存储格式和长度,有如下分类: 字符 数值:分整型和浮点型 布尔值:真、假变量名称命令規範:1、只能包含字母、数字和下划线,并且不能数字开头;2、不與环境变量重名;逻辑运算:与、或、非、异或

3.bash变量类型:

本地变量:set VARNAME=VALUE: 作用域为当前shell进程;
局部变量:local VARNAME=VALUE:作用域为当前代码段;
环境变量:作用域为当前shell进程及其子进程;

第一种表法方法:export VARNAME=VALUE
第二种表法方法:VARNAME=VALUE && export VARNAME
位置变量:$1, $2, ...表示返回参数的值
${1},${2}表示返回参数的值
特殊变量:$?: 上一个命令的执行状态返回值;
程序执行,可能有两类返回值:

(1):程序执行结果
(2):程序状态返回代码(0-255)
0: 为正确执行
1-255:为错误执行,1,2,127系统预留;
引用变量:${VARNAME},括号有时可省略撤消变量:unset VARNAME
查看当shell中变量:set 含环境和本地变量
查看当前shell中的环境变量有以下3个命令:

printenv env export
4.脚本:按需将一大堆简单小命令,结合流程控制机制实现复杂的源程序

shebang: magic number
注意:(1)脚本在执行时会启动一个子shell进程,命令行中启动的脚本会继承当前shell环境变量; (2)系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;
编码脚本基本格式如下:
#!/bin/bash
# 注释行,不执行

5.1 举例说明写一个如下创建用户脚本,完成以下任务:

1、添加user1用户,增加密码完成后不显示passwd命令所有输出信息
2、每个用户添加完成后,最好显示用户已经成功添加的提示信息;
5.1.1:vim useradd.sh 创建一个脚本文件:添加内容如下
#!/bin/bash

USERNAME=user1
useradd $USERNAME
echo "$USERNAME" | passwd --stdin $USERNAME &> /dev/null
echo "Add $USERNAME sucessfully"
5.1.2:保存useradd.sh文件后
chmod a+x useradd.sh 增加执行权限
./useradd.sh 执行脚本创建用户

5.2 举例说明写一个如下删除用户脚本,完成以下任务:
1、删除user1用户,并且删除其家目录,不要显示输出结果; 2、用户删除成功后,最好显示用户已经成功删除的提示信息;5.2.1:vim userdel.sh 创建一个脚本文件:添加内容如下#!/bin/bash
USERNAME=user1
userdel -r $USERNAME &> /dev/null
echo "del user $USERNAME successfully"
5.2.2:保存userdel.sh文件后 chmod a+x userdel.sh 增加执行权限 ./userdel.sh 执行脚本删除用户
本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1763113
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: