• 错题shell


    1.判断/root/class21/inittab.txt文件是否大于100行,如果大于,则显示”inittab is a big file.”否者显示”inittab is a small file.”
        #!/bin/bash
        num=$(awk "BEGIN{sum=0}{sum+=1}END{print sum}" /root/class21/inittab.txt)
        echo $num
        if [ $num -gt 100 ]
        then
                echo "inittab is a big file."
        else
                echo "inittab is a small file."
        fi

    2.写出一个脚本程序,给定一个文件,比如:/root/class21/inittab.txt a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的总行数,否则显示没有空白行
        #!/bin/bash
        num=$(awk "/^$/{print NR}" /root/class21/inittab.txt | wc -l)
        echo $num
        if [ $num -gt 0 ]
        then
                echo "文件中存在空白行"
                echo "共有" $num "行"
        else
                echo "文件中没有空白行"
        fi

    3.给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”
        #!/bin/bash
        filename=$1
        if [ -f $filename ]
        then
                echo $filename "存在并且是一个文件"
                /bin/cat $filename
        elif [ -d $filename ]
        then
                echo $filename "存在是一个文件夹"
                ls -ll
        else
                echo $filename "无法识别"
        fi

    4.写一个脚本,给脚本传递3个参数 两个数字,一个运算符,根据运算符计算出结果,例如 2 3 -   2-3=1
        
        #!/bin/bash
        case $3 in
                "+")
                echo $[$1+$2]
                ;;
                "-")
                echo $[$1-$2]
                ;;
                "*")
                echo $[$1*$2]
                ;;
                "/")
                echo $(echo "scale=2; $1/$2" | bc)


                ;;
                "%")
                echo $[$1%$2]
                ;;
                *)
                echo "无法识别计算"
                ;;
        esac

    5.使用脚本批量创建用户
        
        #!/bin/bash
        #/root/class21/users.txt  里面存放的是用户名,一个名一行
        USERS=$(cat users.txt)
        echo $USERS     
        for UNAME in $USERS
        do
                echo $UNAME
                #userdel -r  $UNAME
                useradd $UNAME
                echo "123456" | passwd --stdin $UNAME
        done

    6.写一个脚本输入任意数组或则数字例如 2 3 4 5 6 7 8 9,输出最大值、最小值、平均值
        #!/bin/bash
        min=$1
        max=$1
        sum=0
        for i in "$@"
        do
            if [ $min -gt $i ]
            then
                min=$i
            fi
            if [ $max -lt $i ]
            then
                max=$i
            fi
            sum=$[$sum+$i]
        done
        echo "最大值为" $max
        echo "最小值为" $min
        echo "平均值为" $[$sum/$#]
    7.写一个脚本输入任意数组或则数字例如 2 4 3 5 9 7 8 6,按照从小到大排序后输出
        #!/bin/bash
        arr=()
        i=0
        for value in "$@"
        do
                arr[$i]=$value
                i=$[$i+1]
        done

        echo ${arr[*]}

        for ((i=0;i<${#arr[@]};i++))  
        do
                for ((j=$i;j<${#arr[@]};j++))
                do
            tmpvalue=${arr[$i]}
                if [ ${arr[$j]} -lt $tmpvalue ]
            then
                arr[$i]=${arr[$j]}
                arr[$j]=$tmpvalue
            fi
            done
        done
        echo ${arr[@]}

     

    1[问答题]1.每分钟清空/tmp/内容 2.每个星期三的下午6点和8点的第5到15分钟之间备份/home/jinghang文件夹下的数据到 /opt/software

                 */1 * * * * /bin/rm -rf /tmp/*

    5-15 18,20 * * 3 /bin/cp /home/jinghang/* /opt/software/   

    2 [判断题]使用ps aux 可以查看到当前进程的父进程

    A. 对

    B. 错

    答案:A

    解析:ps aux | grep xxx (功能描述:查看系统中所有进程)

    18[判断题][ -e /home/jinghang/cls.txt ] 表示判断/home/jinghang/cls.txt目录中的文件是否存在

    A. 对

    B. 错

    [答案]A   

    解析:-e 文件存在

    23[单选题]以下关于运算符表达式的计算不能得到5的是

    A. expr  2 + 3

    B. expr 2+3

    C. echo $[2+3]

    D. echo $[ 2 + 3 ]

    [答案]B

    24[问答题][ $a == $b ] 和 [ $a -eq $b ] 有什么区别?

    [答案][ $a == $b ] - 用于字符串比较 [ $a -eq $b ] - 用于数字比较

    28[多选题]下列关于shell常用的判断条件描述正确的是()

    A. -f 文件存在并且是一个常规的文件(file)

    B. -e 文件存在(existence)

    C. -d 文件存在并是一个目录(directory)

    D. -dir 文件存在并是一个目录(directory)

    [答案]A,B,C

    29[多选题]下列关于Shell中的数组操作正确的是()

    A. 创建数组一个元素包含1~6的数组 arr=(1,2,3,4,5,6)

    B. 读取数组中的第一个元素echo ${arr[0]}

    C. 读取获取数组的长度echo ${#arr[@]}

    D. 读取获取数组中的所有元素 echo ${arr[*]}

    [答案]B,C,D

    31[多选题]下列关于正则表达式的描述正确的是()

    A. d 单字符匹配表示匹配数字0~9

    B. [^a-z] 单字符匹配表示不匹配a-z之间的字符

    C. . 匹配除了换行符之外的任意字符

    D. ^ 匹配以...开头

    [答案]A,B,C,D

    ^表示非

  • 相关阅读:
    lintcode254- Drop Eggs- easy
    lintcode462- Total Occurrence of Target- easy
    lintcode63- Search in Rotated Sorted Array II- medium
    lintcode62- Search in Rotated Sorted Array- medium
    lintcode74- First Bad Version- medium
    lintcode75- Find Peak Element- medium
    lintcode160- Find Minimum in Rotated Sorted Array II- medium
    lintcode159- Find Minimum in Rotated Sorted Array- medium
    lintcode447- Search in a Big Sorted Array- medium
    VS2005、vs2008+WinXPDDK+DDKWizard配置驱动开发环境 分类: VC++ 2015-01-05 09:38 448人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/qu125-tf/p/12056642.html
Copyright © 2020-2023  润新知