标签:shell编程
一.shell编程
1.bash的变量类型
a.环境变量
b.本地变量(局部变量)
c.位置变量
d.特殊变量
2.本地变量的作用域为当前的bash进程,局部变量作用域为当前代码段,环境变量作用域为当前shell进程及其子进程
3.本地变量的申明:
varname=value
局部变量的申明:
local varname=value
环境变量:
export varname=value
4.双引号进行变量的替换,单引号不进行变量的替换
5.脚本在执行时会启动一个子shell进程:
命令行中启动的脚本会继承当前shell环境变量
系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量
6.用bash命令可以一个新的子进程
7.逻辑运算: 或 与 非
或: 只有当两个逻辑判断结果为真时,整个结果才为真
与: 有一个逻辑判断结果为真时,整个的结果为真(短路判断,当第一个逻辑判断结果为真时,后面的判断就不用执行,整个的结果肯定为真)
非: 逻辑判断结果为真,整个结果为假。逻辑判断结果为假,整个结果为真
8.特殊变量:
$?: 上一个命令的执行状态返回值
程序执行,可能有两类返回值:
程序执行结果
程序状态返回代码(0-255)
0: 正确执行
1-255:错误执行,1,2,127系统预留
9./dev/null--软件设备
作用: 不将执行命令的结果输出到屏幕(&>)
10.撤销变量--unset
用法: unset varname
11.查看当前进程的所有环境变量:
printenv
env
export
12.shell文件的编写
#!/bin/bash 文件的默认开头第一行,指定使用哪种shell
shell脚本写完后需要手动给shell文件执行权限
chmod +x ./filename
./filename 或 bash ./filename 执行脚本文件
练习:写一个脚本,完成以下任务
1、添加5个用户, user1,..., user5
2、每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令的执行结果信息
3、每个用户添加完成后,都要显示用户某某已经成功添加
# useradd user1
# echo "user1" | passwd --stdin user1 &> /dev/null
# echo "Add user1 successfully."
本文出自 “珞辰的博客” 博客,请务必保留此出处http://luochen2015.blog.51cto.com/9772274/1636686
标签:shell编程
原文地址:http://luochen2015.blog.51cto.com/9772274/1636686