实验四shell及其程序设计
一、实验目的
1.理解shell操作环境
2.掌握shell程序编写方法
二、实验内容
1.练习、理解下面命令
Alias
答:别名命令,显示所有的别名信息。
alias ld=’ls -ld .’
答:使用别名命令,添加别名信息。
history 20
答:显示最近输入系统的20条命令!!执行上一次输入的命令
var1=”abcd1234”
答:将var1变量赋值
echo ${var1:3:4}
答:显示var1[3]-var1[3+4]的字符
echo $HOME
答:显示当前用户主目录的路径信息
var2=$HOME
答:将当前用户主目录的路径信息赋给var2变量
echo ”我的主目录是$var2”
答:双引号下可以进行字符替换,将var2变量替换为当前用户主目录的信息。
set –o
答:显示系统环境各配置的状态
ls *sh
答:显示当前目录下以“sh”结尾的文件名称
arr1=(long live chair mao)
答:给arr1数组变量赋值
echo ${arr1[1]}
答:显示数组arr1中下标为1的字符串
arr2=(`date`)
答:将date命令显示的结果赋给数组变量arr2
echo ${arr2[3]}
答:显示数组变量arr2中下标为3的字符串
[ $? -eq 0 ] || echo
答:”上面命令执行失败。”判断上条命令是否操作失败,若是,则显示“上面命令执行失败”
{ date;pwd;tty;stty; }
答:分步执行四条命令:显示当前日期信息;显示当前操作的目录;显示当
前终端设备
的名称;显示当前终端的设置;
2.编写shell程序
1)文件名adds.sh,实现多个数值相加;(提示:多个数值通过参数提供)
#!/bin/bash
#多个数相加
s=0
for i in $*
do
let s=s+i
done
echo $s
exit 0
2)文件名cleardirs.sh,删除指定目录下的文件和子目录;
#!/bin/bash
# 删除指定目录下的文件和子目录
if [ -d $1 ]
then
cd $1
rm -r *
else
echo “$1目录不存在!”
fi
exit 0
3)文件名clearfiles.sh,删除指定目录下的文件及其子目录下的文件;(提示:
使用find命令查目录下文件)
#!/bin/bash
# 删除指定目录下的文件和子目录下的文件
if [ -d $1 ]
then
rm -f ‘find $1 -type f’
else
echo “$1目录不存在!”
fi
exit 0
3. 阅读理解程序
120.95.134.193主机,目录/var/materials下:
linux字符串转数组
addusers.sh
#!/bin/bash
# 按文件中列出的用户名建立用户帐号
# $1 学生名单,UTF8编码
# $2 组名
groupadd $2;
#添加组名$2
cmd=" -g $2 ";
#将cmd变量赋值
cat $1 | while read line
#将$1学生名单显示的信息逐行读出
do
u=($line);
#将一行的字符赋值给u变量
useradd $cmd -c "${u[1]},${u[2]}" ${u[0]} ;
#添加用户时同时加入用户描述及分组信息
[ $? -eq 0 ] && {
echo 123456 | passwd --stdin ${u[0]} ;
echo 创建${u[0]}用户成功;
}
#判断上一条命令是否执行成功,若成功则为用户初始化密码,并显示创建用户成功
done > addusers.log
#循环结束后保存到addusers.log 文件中
exit 0
#退出
delusers.sh
#!/bin/bash
# 删除文件中列出的用户
cat $1 | while read line
#将文件$1打开并逐行读出
Do
#进入循环
u=($line)
#将行信息赋给u变量
userdel -r ${u[0]}
#删除用户,并把用户的信息一并删除掉
done > delusers.log
#循环结束后,将修改的信息保存到delusers.log日志文件中
exit 0
#退出

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。