zoukankan      html  css  js  c++  java
  • shell练习

     1.添加6个用户,每个用户的密码同用户名,不显示添加密码的信息,并给显示添加用户成功信息。

     ①用户直接在脚本里写死  test1.sh

    #!/bin/bash#脚本的第一行一定是这个脚本的声明,这里声明的是脚本的解释器。
    # 用户可以有参数传过来,也可以直接定义一个变量。
    U=’user1’ #声明变量,本地变量的声明直接变量名=值,无需export。这里选择单引号,因为user1是个字
    符串,只需强引就行,双引号也行。
    useradd $U #引用变量
    #设置密码和用户名相同,但是设置完之后不显示passwd的执行结果。但是这个passwd会在控制台出现信息
    ,所以需要使用管道传入数据,并且重定向。
    echo "$U" | passwd --stdin $U &>/dev/null #前一个命令的输出传给后一个命令的输入。
    echo "success." #打印成功信息。

       ②用户当参数传递  test2.sh

    #!/bin/bash
    #
    useradd $1 #这里是使用传递参数的方式,1代表1个参数,实际上$1是特殊变量$*的特例
    echo "$1" |  passwd --stdin  $1 &>/dev/null
    echo "Add user $1 success."

        ③执行

       脚本1的执行: sh test1.sh
    
      脚本2的执行: sh test2.sh username
    
      查看是否添加成功: cat /etc/passwd

         调试脚本执行:  sh -x /opt/shell/test2.sh

     

     2.写一个脚本,完成以下任务:第一,使用一个变量保存一个用户名;第二,删除此变量中的用户,且一并删除其家目录;第三,显示“用户删除成功”信息。

      ①编写脚本test3.sh

    #!/bin/bash
    U=$* #使用一个变量存储用户名
    userdel $U #删除这个用户
    rm -rf /home/$U #删除该用户的家目录
    echo "delete user and ${U}home success." #打印成功信息

      ②执行脚本

    sh test3.sh username #注意一定要有参数(要删除的用户),不然会删除整个/home目录
    cat /etc/passwd #查看用户是否删除成功。
    ls /home #查看用户的家目录是否删除成功

    3.添加用户前先判断是否存在,如果存在就打印该用户已存在,并且退出。

      ①编写脚本test4.sh

    #!/bin/bash
    id $1 &>/dev/null && echo "User $1 exist" && exit 3 
    #使用命令的执行状态作为逻辑判断。id $1 如果用户$1存在,则为0(真),#需要继续判断后面的,所以执行echo,并且退出脚本,不再
    #创建该用户。退出,3是非0,当前脚本执行不成功。
     
    useradd $1 #添加用户
    id $1 &>/dev/null &&  echo "$1" |  passwd --stdin  $1 &>/dev/null 
    #如果用户创建成功了,就执行后面的echo passwd添加密码。
    echo "Add user $1 success."

       ②执行脚本

    sh test4.sh user1
  • 相关阅读:
    GridView多行表头合并
    Android开发一 什么是3G
    SQL 日期格式 问题
    ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
    服务器维护:FTP无法连接
    Android开发之旅:应用程序基础及组件
    Failed to create the Java Virtual Machine
    Android开发七 Android中的显示单位
    Excel 数据有效性,怎么提示指定的命名区域不存在?
    Android开发三 如何安装 Android SDK 和Eclipse 插件
  • 原文地址:https://www.cnblogs.com/sdadx/p/8311582.html
Copyright © 2011-2022 走看看