zoukankan      html  css  js  c++  java
  • Linux下shell编程实例

    1. 推断一文件是不是块或字符设备文件。假设是将其复制到 /dev 文件夹下


    read -p "input a file:" filename

    if [ -b $filename -o -c $filename ]
    then
    cp $filename /dev/

    fi


    2.编写一个脚本。进行简单的减法运算。要求提示输入变量


    #!/bin/bash
    read -p "input a number:" num1
    read -p "input another number:" num2
    let "num3=num1-num2"
    echo $num3



    3.把某个文件夹下的文件扩展名改为bat,再以时间为文件名称压缩打包存放到某个文件夹。


    #!/bin/bash
    for file in $(ls $1)
    do
    new_file=${file%.*}.bat
    mv ./$1/$file ./$1/$new_file
    tmp=$(date +%y)
    tar cvf ./$tmp.tar ./$1
    done

    4.推断一个数是不是完数。

    打印出1-1000之间的完数。

    完数就是约数的和等于自身2倍的数。(6,28,496)

    #!/bin/bash
    sub()
    {
    i=1;
    sum=0;
    while [ $i -le $num ]
    do
    let "m=num%i"
    if [ $m -eq 0 ]
    then
    let "sum=sum+i"
    fi
    let "i=i+1"
    done
    let "a=2*num"
    if [ $a -eq $sum ]
    then
    echo $num
    fi
    }
    num=1
    while [ $num -le 1000 ]
    do
    sub
    let "num = num+1"
    done


    5.在某个目录下查找含有指定字符串的文件

    #!/bin/bash
    for file in $(ls $2)
    do
    bname=$(grep -l $1 $2/$file)
    basename $bname
    done


    6.加入一个新组为class1,然后加入属于这个组的30个用户,username的形式为stdxx,当中xx从01到30。

    #!/bin/bash
    groupadd class1
    for i in {9901..9930}
    do
    xx=$(echo $i | sed 's/99//');
    useradd -g class1 std$xx -p ""
    done


    7.设计一个Shell程序。在/userdata文件夹下建立50个文件夹。即user1~user50,并设置每一个文件夹的权限,其中其它用户的权限为:读。文件全部者的权限为:读、写、运行;文件全部者所在组的权限为:读、运行。

    #!/bin/bash
    for ((i=1;i<=50;i++))
    do
    mkdir -p /usrdata/user$i
    cd /usrdata
    chmod 754 user$i
    done


    8. 写一个脚本,利用循环计算10的阶乘
    #!/bin/sh
    factorial=1
    for a in `seq 1 10`
    do
    factorial=` expr $factorial * $a `
    done
    echo "10! = $factorial"

    9.删除当前文件夹下大小为0的文件
    #/bin/bash
    for filename in `ls`
    do
    if test -d $filename
    then b=0
    else 
    a=$(ls -l $filename | awk '{ print $5 }')
    if test $a -eq 0
    then rm $filename
    fi
    fi 
    done



  • 相关阅读:
    mybatis配置
    mybatis 多表查询 与配置
    Maven中资源导出问题解决方案--pom.xml配置
    【macOS】Mac App Store 无法 更新/下载
    【macOS】删除 Mac 上的 Office 许可证文件
    【前端】JavaScript学习笔记(一)——快速入门
    【前端】CSS3学习笔记(五)——定位
    【前端】CSS3学习笔记(四)——浮动
    【前端】CSS3学习笔记(三)——盒子模型
    【macOS】清除Finder 「前往」(⌘
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5241773.html
Copyright © 2011-2022 走看看