• linux shell习题


    课件地址:https://wenku.baidu.com/view/bac2ff10f18583d0496459f3.html

    1.测试环境变量:HOME,PWD,IFS等
    2.测试位置变量:$$,$#,$0,$1,$2,$3,$@,$*,再测试当IFS=‘’和取消IFS时$@和$*的输出
    3.使用if和case对“是否选修了Linux课程”的问题做出回答
    4.列出当前目录下包含sh文件的详细信息
    5.列出1~50之间的奇数
    6.计算1+2+…+n

    7.统计/etc目录下的文件数和目录数
    8.设计一函数使能只列指定目录下的子目录
    9.设计一函数能实现向文件追加记录的功能(记录由若干变量构成)
    10.监控某个用户是否登陆
    11将指定目录下的.txt文件成批量地改名为 .doc

    1~2

    #!/bin/bash
    endl() {
        echo -e "=======end===============
    "
    }
    
    echo $HOME; endl # => /c/Users/mdzz
    echo $PWD; endl # => /c/Users/mdzz/Desktop/2018linux
    echo $IFS; endl
    echo $$,$#,$0,$1,$2,$3,$@,$*; endl # => 5544,0,exercise.sh,,,,,

    2

    #!/bin/bash
    endl() {
        echo -e "=======end===============
    "
    }
    
    list="we:are:champion"
    ifs_old=$IFS
    IFS=$':'
    for val in $list
    do
      echo "n=$val"
    done
    IFS=$ifs_old; endl
    
    ifs_old=$IFS
    IFS=''
    echo $@,$*
    IFS=$ifs_old
    echo $@,$*; endl

    3

    #!/bin/sh
    echo "是否选修了Linux课程"
    read yesorno
    if [ "$yesorno" = "yes" ]
    then
        echo "Good."
    elif [ "$yesorno" = "no" ]; then
        echo "what a pity!"
    else
        echo "Sorry, $yesorno not recognized. Enter yes or no"
        exit 1
    fi
    exit 0

    4~7

    #!/bin/bash
    #####脚本一######
    #输入绝对路径,查找包含.sh结尾的文件及目录输出到file.tmp里
    # read -p "请输入要查询的目录:" DIR
    # find ${DIR} -name "*.sh" > file.tmp
    #!/bin/bash
    #####脚本二#####
    #输入要查询的目录,如果文件不存在创建文件,如果存在退出
    # read -p "请输入要查询的目录:" DIR
    # read -p "请输入要创建的文件:" FILENAME
    # if [ -d $DIR ];then
    # if [ ! -f $FILENAME ];then
    # touch $FILENAME
    # echo "${FILENAME} 创建成功"
    # else
    # echo "${FILENAME} 文件已经存在"
    # exit 0
    # fi
    # else
    # echo "指定的目录不存在!"
    # fi
    
    DIR=`ls -l`
    # echo $DIR
    ls -l *.sh
    
    echo {1..50..2} # 罗列1 ~50的奇数
    
    # 求 1+2+3+..+n
    read -p "请输入数字n;" N
    sum=0
    for ((i=1; i<=$N; i++));do
        sum=$(($i+$sum))
    done
    echo $sum
    
    #统计当前目录文件数和目录数
    FILE_NUM=`find ./ -type f |wc -l` #统计文件数
    DIR_NUM=`find ./ -type d |wc -l` #统计目录数
    echo $FILE_NUM
    echo $DIR_NUM

    11

    #!/bin/bash
    for file in `ls | grep .txt`
    do
        NEW_FILE=`echo $file`
        # ${string/substring/replacement} # substring可以是正则表达式
        NEW_FILE=${NEW_FILE/.txt/.doc}
        mv $file $NEW_FILE
    done
  • 相关阅读:
    在公司中使用springboot技术的经验
    使用swagger2代替api文档
    第一份正式工作-华为外包。
    zookeeper学习入门
    dubbo入门
    C/C++编程笔记:inline函数的总结!C/C++新手值得收藏!
    刚毕业入职程序员?程序员需注意这 6 点!都是前辈“血的教训”
    你在群里提的技术问题没人回答!是为什么?因为没注意这 4 点!
    程序人生:程序员想要提升英文阅读能力怎么办?实用秘籍推荐!
    程序员必看:长期工作的程序员转眼变油腻大叔!你今天护肤了吗?
  • 原文地址:https://www.cnblogs.com/xkxf/p/9982133.html
Copyright © 2020-2023  润新知