zoukankan      html  css  js  c++  java
  • shell编程

    shell编程

    sh -x :显示脚本的执行过程
    

    shell编程之局部变量

    局部变量:只在shell脚本中生效
    命名规则:必须以字母或下划线开头(字母、数字、下划线组成)
    驼峰语法:首个单词小写,其余单词首字母
    

    shell编程之环境变量(全局变量)

    环境变量:大写,在任意地方都可以使用,如$PS1,$LANG,$PATH
    查看系统中所有环境变量:env
    环境变量分为两类:bash内置的环境变量与自定义环境变量
    自定义环境变量:export 命令,如exprot ABC=AAA
    取消变量:unset 变量名
    永久生效:将定义的变量名追加到/etc/profile中
    

    与环境变量相关的文件

    /etc/profile:全局配置文件
    /etc/bashrc:全局别名配置文件
    /etc/profile.d:用户登陆系统时会运行这个目录的脚本
    ~/.bash_profile:用户配置文件
    ~/.bashrc:用户别名配置文件
    

    shell编程之特殊变量

    $0:表示脚本的名字
    $1:表示脚本中的第一个参数
    $2:表示脚本中的第二个参数
    $n:表示脚本中的第N个参数
    $#:表示脚本中共有几个参数
    $?:表示上一个命令有没有执行成功,0表示执行成功,非0表示执行失败
    read:表示交互式输出
        -p:在屏幕提示输出语名
        -s:关闭回显,用于密码输出
        -t:等待时间,多少秒之后出退
    

    shell编程之测试语句

    #-f:表示文件,-d:表示目录
    [root@web02 files]# [ -f /etc/hosts  ]
    [root@web02 files]# echo $?
    0
    [root@web02 files]# [  -d /etc/aaa ]
    [root@web02 files]# echo $?
    1
    

    shell编程之if语句

    -gt:大于 >
    -lt:小于 <
    -ne:不等于 !=
    -eq:等于 ==
    -le:小于等于 <=
    -ge:大于等于 >=
    #语法
    #单分支
    if [ 条件 ];then
       命令
    fi
    #双分支
    if [条件];then
      ....
    else
      ....
    fi
    #多公支
    if [条件];then
      命令
    elif
      命令
    else
      命令
    fi
    例子:判断脚本的参数个数不是2就退出
    #!/bin/bash
    #x=$1
    #y=$2
    if [ $# -ne 2 ];then
      echo "Usge:需要两个参数"
      exit
    fi
    

    shell编程之for循环

    #语法
    for 变量名字  in  列表
    do
         命令
    done
    #例子:优化linux开机启动项目,只保留crond;sshd;network;rsyslog;sysstat,其他的都关闭
    #!/bin/bash
    stat_name=`chkconfig |grep -v 'crond|ssdh|network|rsyslog|sysstat'|awk '{print $1}'`
    for name in $stat_name
    do
       chkconfig $name on
    done
    #例子2:批量添加用户并设置随机密码
        #!/bin/bash
    user=`seq -f "s%02g" 10`
    for username in $user
    do
      password=`echo $RANDOM |md5sum|cut -c 1-8` 
      useradd $username
      echo $username $password >> a.txt 
      echo $password |passwd --stdin $username 
    done
    
  • 相关阅读:
    【Qt】Qt5.12连接MySQl5.7(亲自测试成功)
    【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)
    【网络安全】十三款流行无线黑客工具介绍
    微信公众号教程(15)公司通讯录开发 下
    微信公众号教程(14)公司通讯录开发 中
    微信公众号教程(13)公司通讯录开发 上
    微信公众号教程(12)公众账号接收非文字消息 下
    微信公众号教程(11)公众账号接收非文字消息 上
    微信公众号教程(10)公众账号自定义回复功能
    微信公众号教程(9)公众账号发送欢迎图文消息
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10336257.html
Copyright © 2011-2022 走看看