Shell编程------脚本范例

Posted Ivan B.G. Liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程------脚本范例相关的知识,希望对你有一定的参考价值。

1. 批量添加用户
    建立用户名和密码组合的txt文件userdata.txt,如下:
username1 123
username2 123
username3 123
username4 123
username5 123
username6 123
    批量添加以上用户的脚本是:
#! /bin/bash
while read line
do
    username=$(echo $line | cut -f1 -d )   #或 username=$(echo $line | awk {print $s1})
    password=$(echo $line | cut -f2 -d )   #或 password=$(echo $line | awk {print $s2})
    useradd $username
    if [ $? -eq 0 ]; then
        echo $password | passwd --stdin $username
    else
        echo "the user $username has been finished!"
    fi
done < userdata.txt
 
2. 文件安全检测
    文件安全检测的机制是基于MD5算法:使用MD5算法计算文件的MD5值,若与原始文件的MD5值不同,则文件被修改过。
#! /bin/bash
mkdir /usr/UserData
sudo chmod 777 /usr/UserData
DIRS="/bin /usr/bin"              #  不是shell内建命令的命令最好用全路径调用!
FIND="usr/bin/find                #  不是shell内建命令的命令最好用全路径调用!
MD5SUM="usr/bin/md5sum"           #  不是shell内建命令的命令最好用全路径调用!
# 计算文件夹中所有文件的MD5值
$FIND $DIRS -type f | while read line           
do
    MD5SUM $line >> /usr/UserData/md5value.md5   # >是覆盖重定向到文件    >>是追加重定向到文件
done 
# 检验md5value.md5中所有MD5值是否发生了改变(使用 -c)      --status参数使命令不产生文字输出
while read line
do   
     $MD5SUM -c --status $line
     if [ $? -eq 0 ]; then
        echo "$line is initial md5"
     else
        echo "$line has been changed"
     fi
done < md5value.md5

 

以上是关于Shell编程------脚本范例的主要内容,如果未能解决你的问题,请参考以下文章

Shell中的${ }###%%%使用范例

代码片段:Shell脚本实现重复执行和多进程

shell编程总结

Linux bash基础特性二

shell 脚本 片段

用于确保在任何给定时间仅运行一个 shell 脚本的 shell 片段 [重复]