上部:
面向过程:
顺序执行
选择执行: if, case
循环执行: for, while, until
一、for语句
格式:
for 变量 in 列表;do
语句1;
语句2;
...
done
例1、写一个脚本,添加10个用户,并让每个用户的密码同用户名】
代码如下:
#!/bin/bash
for I in {1..10}; do
useradd user$I;
echo user$I | passwd --stdin user$I
done
例2、写一个脚本,分别显示 /tmp/1.dir /tmp/2.dir /tmp/3.dir三个文件的时间戳,并将这三个文件被修改的时间改为201003030303.03
代码如下:
#!/bin/bash
for Dir in /tmp/1.dir /tmp/2.dir /tmp/3.dir; do
stat $Dir
touch -m -t 201003030303.03 $Dir
stat $Dir
done
bash的变量类型:
本地变量
局部变量
环境变量
位置变量 :$1、$2、$3、$4....
特殊变量:
$?: 用于保存刚刚执行的命令的状态返回值;
0:成功执行;1-255:失败,1,2,127
可以使用exit命令在脚本中自定义脚本执行状态返回值;如果不定义,脚本执行状态返
回值取决于脚本执行结束前最后执行的那个语句的状态;
$@, $*: 所有位置参数;
$#: 位置参数的个数;
$0: 脚本名称
二、if语句
1、单分支if语句:
格式:
if 条件; then
语句1
语句2
...
fi
例3、写一个脚本,实现如下功能: 如果用户存在,就说明其存在;
代码如下:
#!/bin/bash
UserName=user1
if grep "^$UserName/>" /etc/passwd &> /dev/null; then
echo "$UserName exists."
fi
例4、写一个脚本,实现如下功能:如果设备/dev/sda3已经挂载,就显示其挂载点;
代码如下:
#!/bin/bash
Device='/dev/sda3'
if mount | grep "^$Device" &> /dev/null; then
新闻热点
疑难解答