码迷,mamicode.com
首页 > 系统相关 > 详细

(转载)shell脚本练习题

时间:2018-04-20 20:43:17      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:多个   etc   脚本练习   计算   tool   cut   dir   开头   seq   

  1. #!/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}  #显示共有多少个文件  

 

 


 
  1. #!/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   

     

  1. #!/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]  

     


 

 
  1. #!/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 #更改权限 

     

 
  1. #!/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:]]*  

     

(转载)shell脚本练习题

标签:多个   etc   脚本练习   计算   tool   cut   dir   开头   seq   

原文地址:https://www.cnblogs.com/pingzizhuanshu/p/8893118.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!