zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    【转】你刚才在淘宝上买了一件东西【技术普及贴】
    Hibernate使用自定义脚本替换注解或者xml文件中的自动生成表结构
    北京地铁和广州地铁之感想
    使用eclipse开发工具与hibernate开发者为开源一起做贡献
    hdu 1159 Common Subsequence(最长公共子序列LCS)
    题解报告:hdu 2059 龟兔赛跑
    循环顺序队列模拟病人看病程序
    题解报告:hdu 1060 Leftmost Digit
    ACM_求N^N的最高位数
    ACM_Encoding
  • 原文地址:https://www.cnblogs.com/xkxf/p/9982133.html
Copyright © 2011-2022 走看看