• shell练习题讲解


    写一个脚本,计算100以内所有的奇数的和以及所有偶数的和,分别显示出来
    #! /bin/bash
    sum1=0
    for i in `seq 1 2 100`
    do
    sum1=$[$sum1+$i]
    done
    echo $sum1

    sum2=0
    for j in `seq 2 2 100`
    do
    sum2=$[$sum2+$j]
    done
    echo $sum2


    写一个脚本,利用RANDOM生成10个随机数,并且找出最大值和最小值

    for i in `seq 1 10`
    do
    n[$i]=$RANDOM
    echo ${n[$i]} >> tmp.txt
    done
    a=`sort -n tmp.txt|head -n1`
    b=`sort -n tmp.txt|tail -n1`
    echo "a="$a
    echo "b="$b


    ======
    if [ -z $hdir ] 判断是否为空
    if [ -n $hdir ] 判断是否不为空
    ======
    写一个脚本,检查普通用户的家目录是否存在,比如apache用户存在,输出exit
    ,如果不存在,输出not exist


    read -p "please input a user name;" username
    hdir1=`awk -F: '$1=="'$username'"' /etc/passwd`
    if [ -z $hdir1 ]
    then
    echo "the user you input is not exist"
    exit
    fi
    hdir=`echo $hdir1| awk -F: '{print $6}'`
    if [ -z $hdir ]
    then
    echo "the user you input is not exist"
    exit
    fi
    if [ -z $hdir ]
    then
    echo "$username's homedir is $hdir and exist"
    else
    echo "$username's homedir is $hdirnot exist"
    fi


    写一个脚本,完成以下任务
    1,添加5个用户,usr1,,,,user5
    2,每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd命令执行结果信息
    3,每个用户添加完成后,都要显示用户某某已经添加成功

    for i in {1..5}
    do
    if ! grep -q "^user$i:" /etc/passwd
    then
    useradd usr"$i"
    echo -e "user$i user$i " |passwd user"$i" >/dev/null 2>&1
    echo "add user done"
    else
    echo "the user user$i exist"
    continue
    fi
    done

    数字范围加到 100-999
    如果数值超过正负 50 会提示:太大,太小
    如果数值在正负 50 之间会提示,很接近

    m=$[$RANDOM%900+100]
    while :
    do
    read -p "input a number:" n
    #n1=$[$m+50]
    #n2=$[$m-50]

    if [ "$n" -gt "$m" ]
    then
    echo "bingger"
    fi
    if [ "$n" -lt "$m" ]
    then
    echo "smaller"
    fi
    if [ "$n" -eq "$m" ]
    then
    echo "right"
    exit
    fi
    done

    写一个脚本,计算100以内所有能被3整除的正整数的和
    sum=0
    for i in {1..100}
    do
    n=$[$i%3]
    if [ "$n" -eq 0 ]
    then
    sum=$[$sum+$i]
    fi
    done
    echo $sum

    写一个脚本,执行后,打印一行提示 “please input a number”,要求用户输入数值,然后打印出该数值,然后再次要求用户输入数值,知道用户输入 end 停止

    while :
    do
    read -p "please input a number:" n
    if [ "$n" == "end" ]
    then
    exit
    fi
    m=`echo $n|sed 's/[0-9]//g'`
    if [ -n "$m" ] 不为空
    then
    echo "it's not number,please input a number."
    else
    echo $n
    fi
    done

    当根目录所在硬盘的使用率大于85%时输出警告信息

    df |awk '$6=="/"'

    df |awk '$6=="/" ' |awk -F '[%" "]+' '{print $5}'
    awk支持多个分隔符,这里是%和空格,+表示百分号空格可以有多个

    echo "a b%c%d e" |awk -F '[%" "]' '{print $3,$5}'

    df |awk '$6=="/" ' |awk -F '[%" "]+' '{print $6}'

     

  • 相关阅读:
    jquery 设置焦点
    hibernate DetachedCriteria实现多表关联查询createAlias的使用
    js-处理千分符
    json-jsonConfig使用
    json:There is a cycle in the hierarchy!
    Hibernate @OneToMany 一对多注解
    Hibernate @Formula 注解方式
    Freemarker 各种格式化
    Freemarker list标签,list数据判断使用
    js处理日期格式化-年月日周
  • 原文地址:https://www.cnblogs.com/chenshoubiao/p/4854975.html
Copyright © 2020-2023  润新知