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

bash编程之变量、变量类型

2015-12-22 15:53 489 查看
bash编程之变量、变量类型变量:一段命名的内存空间变量类型:事先确定数据的存储格式和长度(整型、浮点型、真假型)Shell编程: 弱类型编程语言强:变量在使用前,必须事先声明,甚至还需要初始化;弱:变量用时声明,甚至不区分类型;变量赋值:VAR_NAME=VALUE

bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量(系统内置的变量、用于存储特殊的数据)引用变量:${VAR_NAME},括号可以省略,是否省略主要看其引用的变量名称是否容易引起混淆

不同的shell的是不同的进程

本地变量:set (可省略)VARNAME=VALUE: 作用域为整个bash进程;局部变量:local VARNAME=VALUE:作用域为当前代码段;环境变量:作用域为当前shell进程及其子进程;(只对当前shell以及其子shell有效)

1.export VARNAME=VALUE2.VARNAME=VALUEexport (导出) VARNAME位置变量:$1, $2, ...特殊变量:$?: 上一个命令的执行状态返回值;

程序执行,可能有两类返回值: 程序执行结果 程序状态返回代码(0-255) 0:正确执行 1-255:错误执行,1,2,127系统预留;注:表示不存在学生这个用户撤消变量:unset VARNAME

查看当shell中变量:set

查看当前shell中的环境变量:printenv或者printexport

脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序每一个shell脚本的最前面一句#!/bin/bash(shebang: 魔数)# :表示注释行,不执行

给脚本添加执行权限(linux只能识别ELF格式的文件,然而脚本是ASSIC格式的文件)

给脚本文件指定执行路径(./frist.sh为当前路径)

去权限执行脚本:(bash frist.sh)直接用bash解释器,但是在必须单独执行的时候必须给与脚本文件执行的权限

/dev/null: 软件设备, bit bucket,数据黑洞 (表示输入到里面的数据不会被显示出来)

在shell变量中加入新的值:引用其前面的值即可

注:脚本在执行时会启动一个子shell进程; 命令行中启动的脚本会继承当前shell环境变量; 系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;Shell默认是字符串,不做算术运算;比如:

写一个脚本,完成以下任务1、添加2个用户, user1,user22、每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令的执行结果信息;3、每个用户添加完成后,都要显示用户某某已经成功添加;







写一个脚本,完成下面的任务。使用一个变量保存一个用户
删除此变量中的目录,并且一并删除其家目录
显示“用户删除成功”






本文出自 “生如夏花” 博客,请务必保留此出处http://langmei.blog.51cto.com/11016382/1727207
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: