• Shell编程实例


    整理了几道Shell编程实例,针对新手!
    
    1. 在/home目录中创建一百个目录,目录名称依次为a1……a100. 
    
    实例1 
    
    
    for ((i=1;i<=100;i++))
    do
        mkdir "/home/a"$i
    done
    实例2,还可以写的高级一点
    
    
    
    
    for ((i=1;i<=100;i++))
    do
        if [ ! -e "/home/a"$i ]
        then    
            mkdir "/home/a"$i
        else
            echo "/home/a"$i"exist!"
        fi  
    done
    
    
    
    
    
    
    2.  编写一个脚本,自动将用户主目录下所有小于5KB的文件打包成XX.tar.gz.(提示:用ls,grep,find等命令,文件一般指普通文件) 
    
    find实现 
    
    
     find ./ -type f -size +5120c |xargs tar -czvf xx.tar.gz
    ls,grep实现
    
    
    
    
    ls -l | grep ^- | awk '{if($5<5120)print $9}' | xargs tar -czf tar.gz
    
    
    
    
    
    
    
    
    3.写一个程序,可以将/et/passwd的第一列取出,而且每一列都以一行字符串“the 1 account is “root””来显示 
    
    
    #!/bin/bash
    i=1
    while read line
    do
        name=`echo $line|cut -d ":" -f1`
        echo "the "$i" account is "$name
        i=$((i+1))
    done < /etc/passwd
    只取第一行的话一条命令就够了
    
    
    
    
    cat /etc/passwd | cut -d ":" -f1
    
    
    
    
    
    4. 编写一个程序,他的作用是先查看一下/root/test/logical这个名称是否存在,若不存在,则创建一个文件。使用touch来创建,创建完成后离开;如果存在的话,判断该名称是否为文件,若为文件则将之删除后新建一个目录。文件名为loglical,之后离开;如果存在的话,而且该名称为目录,则删除此目录。 
    
    
    #!/bin/bash
    if [ -e "/root/work/logical" ]
    then
        if [ -f "/root/work/logical" ]
        then 
            rm "/root/work/logical" 
            mkdir "/root/work/logical" 
        elif [ -d "/root/work/logical"  ]
        then    
            rm -rf "/root/work/logical"
        fi  
    else
        touch "/root/work/logical" 
    fi
        
    
    
    
    5.编写一个shell脚本,从键盘读入10个数,显示最大值和最小值。 
    
    难点整数的比较和字符串比较符的区分 
    
    
    min=0
    max=0;
    var=0
    for((i=0;i<10;i++))
    do
        read var 
        if [ $i == 0 ] 
        then
            min=$var;
            max=$var;
        else
            if [ $min -gt $var ]
            then
                min=$var;
            fi  
            if [ $max -lt $var ]
            then max=$var;
            fi  
        fi; 
        
    done
    echo $max
    echo $min
    
    
    
    
    
    6.编写一个脚本,打印任何数的乘法表。如输入3则打印
      1*1=1
      2*1=2 2*2=4
    
      3*1=3 3*2=6 3*3=9 
    
    难点:echo 不换行输出 
    
    
    var=0
    read var;
    for((i=1;i<=var;i++))
    do
        for((j=1;j<=i;j++))
        do  
            echo -ne "$i*$j="$((i*j))" "
        done
        echo -ne "
    "
    done                                                                                                          
    
    
    
    
    
    7.编写一个脚本,输入自己的生日时间(YYYYMMDD),计算还有多少天多少个小时是自己的生日。
    
    时间的操作一般通过时间戳来实现 
  • 相关阅读:
    12.18-java复习-UserBean
    12.17-javaweb复习
    12.16-javaweb复习
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    java建议
    个人表现
    今日总结
    今日总结
    今日总结
    今日总结
  • 原文地址:https://www.cnblogs.com/zendu/p/4987940.html
Copyright © 2020-2023  润新知