shell脚本练习题

来源:互联网 发布:安康软件开发公司 编辑:程序博客网 时间:2024/05/19 08:25
#!/bin/bash#写一个脚本#       1.设定变量FILE的值为/etc/passwd#       2.依次向/etc/passwd中的每个用户问好,并且说出对方的ID是多少#形如:#         Hello,root,your UID is 0.FILE=/etc/passwdCOUNT=`wc -l ${FILE} | cut -f1 -d" "`for i in `seq ${COUNT}`doUSER=`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=/varNUM=0cd ${WORK_PATH}    #切换工作目录for FILE in `ls `doecho Hello,${FILE}  #依次像每个文件或子目录问号let NUM+=1    #let 是做数值运算doneecho 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/passwdFILE_TMP=/tmp/mypasswdfor i in 2 4 6 10 13 15doecho `head -n ${i} ${FILE}| tail -n 1 | tee -a ${FILE_TMP}` done 


#!/bin/bash#写一个脚本#       传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商if [ $# -lt 2 ]thenecho ${0} number numberexitfiecho 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/scriptsFOLDER_SOURCE=/etc/pam.dif [ ! -d ${FOLDER} ] #判断目录是否存在,不存在则创建目录thenmkdir $FOLDERfi cd ${FOLDER}  #切换到工作目录cp -rf $FOLDER_SOURCE ./testchown -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/lstestdate   #显示当前时间与日期if [ ! -d ${FOLDER} ]  #判断目录是否存在,如果不存在则创建thenmkdir ${FOLDER}ficd ${FOLDER}if [ ! -d "a1d" ]thenmkdir a1dfiif [ ! -d "b56e" ]thenmkdir b56efiif [ ! -d "6test" ]thenmkdir 6testfiif [ ! -f "xy" ]thentouch xyfiif [ ! -f "x2y" ]thentouch x2yfiif [ ! -f "732" ]thentouch 732fils [ax6]*ls [[:alpha:]][[:digit:]]*   


0 0