shell脚本练习题

#!/bin/bash

#写一个脚本
#       1.设定变量FILE的值为/etc/passwd
#       2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是多少
#形如:
#         Hello,root,your UID is 0.

FILE=/etc/passwd
COUNT=`wc -l ${FILE} | cut -f1 -d" "`

for i in `seq ${COUNT}`
do
	USER=`head -n ${i} ${FILE} | tail -n 1 | cut -f5 -d":"`
	ID=`head -n ${i} ${FILE} | tail -n 1 | cut -f4 -d":"`
	echo Hello, ${USER}, your UID is ${ID}
done


#!/bin/bash

#写一个脚本
#      1.切换工作目录至/var
#      2.依次向/var目录中的每个文件或子目录问好,形如:
#        Hello,log
#      3.统计/var目录下共有多个文件,并显示出来

WORK_PATH=/var
NUM=0
cd ${WORK_PATH}    #切换工作目录
for FILE in `ls `
do
	echo Hello,${FILE}  #依次像每个文件或子目录问号
	let NUM+=1    #let 是做数值运算
done
echo the number of files is ${NUM}  #显示共有多少个文件


#!/bin/bash

#写一个脚本
#      1.设定变量file的值为/etc/passwd
#      2.使用循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容
#      3.把这些行保存至/tmp/mypasswd文件中

FILE=/etc/passwd
FILE_TMP=/tmp/mypasswd

for i in 2 4 6 10 13 15
do
	echo `head -n ${i} ${FILE}| tail -n 1 | tee -a ${FILE_TMP}` 
done 


#!/bin/bash

#写一个脚本
#       传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商

if [ $# -lt 2 ]
then
	echo ${0} number number
	exit
fi

echo first number is ${1}
echo second number is ${2}

echo $(($1+$2))
echo $[$1-$2]
echo $[$1*$2]
echo $[$1/$2]


#!/bin/bash

#写一个脚本:
#       1.创建目录/tmp/scripts
#       2.切换工作目录至此目录中
#       3.复制/etc/pam.d目录至当前目录,并重命名为test
#       4.将当前目录的test及其里面的文件和子目录的属主改为gino
#       5.将test及其子目录中的文件的其它用户的权限改为没有任何权限

FOLDER=/tmp/scripts
FOLDER_SOURCE=/etc/pam.d

if [ ! -d ${FOLDER} ] #判断目录是否存在,不存在则创建目录
then
	mkdir $FOLDER
fi 

cd ${FOLDER}  #切换到工作目录
cp -rf $FOLDER_SOURCE ./test
chown -R gino ./test #更改属主
chmod 700 ./test #更改权限


#!/bin/bash

#写一个脚本
#       1.显示当前系统日期和时间,而后创建目录/tmp/lstest
#       2.切换工作目录至/tmp/lstest
#       3.创建目录a1d,b56e,6test
#       4.创建空文件xy,x2y,732
#       5.列出当前目录下以a,x或者6开头的文件或目录
#       6.列出当前目录下以字母开头,后跟一个任意数字,而后跟任意长度字符的文件或目录

FOLDER=/tmp/lstest

date   #显示当前时间与日期
if [ ! -d ${FOLDER} ]  #判断目录是否存在,如果不存在则创建
then
	mkdir ${FOLDER}
fi

cd ${FOLDER}

if [ ! -d "a1d" ]
then
	mkdir a1d
fi

if [ ! -d "b56e" ]
then
	mkdir b56e
fi

if [ ! -d "6test" ]
then
	mkdir 6test
fi

if [ ! -f "xy" ]
then
	touch xy
fi

if [ ! -f "x2y" ]
then
	touch x2y
fi

if [ ! -f "732" ]
then
	touch 732
fi

ls [ax6]*
ls [[:alpha:]][[:digit:]]*   


  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值