zoukankan      html  css  js  c++  java
  • Shell脚本管理

    sh test.sh、./test.sh与source test.sh、. test.sh执行命令的区别:sh是启用子shell执行而source或点是在当前窗口执行
    export A=123:定义全局变量;unset A:删除定义的全局变量;source /etc/profile:在当前脚本中导入系统环境变量(包括$PATH)
    全局变量配置文件执行顺序:
    /etc/profile---->/etc/profile.d/---->~/.bash_profile---->~/.bashrc---->/etc/bashrc

    脚本调试
    [root@web01 scripts]# sh [-nvx] scripts.sh
    说明: -n 不会执行该脚本,仅查询脚本语法是否有问题,并给出错误提示
    -v 在执行脚本时,先将脚本的内容输出到屏幕上,然后执行脚本,如果有错误,也会给出错误提示
    -x 将脚本的运行过程输出显示到屏幕上
    使用set命令调试
    参数:set -n:读命令但并不执行
    set -v:显示读取的所有行
    set -x:显示所有命令及参数
    set -x开启调试,set+x关闭调试,set命令主要用来缩小调试范围。例:
    [root@web01 scripts]# cat test3.sh
    #!/bin/bash
    set -x
    if [ -f /var/log/iptables.log ];then
    echo "iptables.log is ok"
    set +x
    else
    echo "iptables.log is error"
    fi

    shell调试技巧
    1、用dos2unix对脚本格式化(主要是windows转为unix格式)
    2、执行脚本根据报错来调试时,要知道有时候报错不准确,多关联上下文查看
    3、可通过sh -x scripts.sh命令调试整个脚本,且显示执行过程
    4、set -x和set +x命令用于调试部份脚本执行过程(在脚本中设置)
    5、通过echo命令确认脚本中的变量及相关内容,然后紧跟着使用exit退出脚本,不执行后面的程序,这种方式便于一步步跟踪脚本,对于逻辑错误比较好用,例:echo $var;exit 10

    脚本嵌套
    [root@web01 scripts]# cat bieming.sh
    #!/bin/bash
    alias qw="echo 123"
    [root@web01 scripts]# cat new.sh
    #!/bin/bash
    source /server/scripts/bieming.sh
    qw

     
     其它常用操作
    用法  说明 
     sh while1.sh &   把脚本while1.sh放到后台执行
     ctl+c  停止执行当前脚本或任务
     ctl+z  正在前台执行的命令放到后台且暂停执行当前脚本或任务
     bg  把当前脚本或任务放到后台执行,bg可以理解为background
     fg  把当前脚本或任务拿到前台执行,如果有有多个任务,可以使用fg加任务编号调出对应脚本任务,如fg 2,调出第二个脚本任务,fg可以理解为frontground
     jobs  查看当前执行的脚本或任务
    kill 关闭执行的脚本任务,即以“kill 进程号”的形式关闭脚本,这个任务编号,可以通过jobs获得
    1) 使用sh /server/scripts/while_01.sh &命令,即使用&在后台运行脚本。
    2) 使用nohup /server/scripts/uptime.sh &命令,即使用nohup加&在后台运行脚本。
    3) 利用screen保持会话,然后在执行命令或脚本。也就是使用screen保持当前会话状态。
    screen [option <作业名称>]
    -r  <作业名称>  恢复离线的screen作业
    -S  <作业名称>  指定screen作业的名称

    更多有关进程管理的Linux相关命令如下。
    kill、killall、pkill:杀掉进程。
    ps:查看进程。
    pstree:显示进程状态树。
    top:显示进程。
    renice:改变优先权。
    nohup:用户退出系统之后继续工作。
    pgrep:查找匹配条件的进程。
    strace:跟踪一个进程的系统调用情况。
    ltrace:跟踪进程调用库函数的情况。

    参考链接:
           https://www.cnblogs.com/jinxiao-pu/p/9131057.html       #nohup详解

  • 相关阅读:
    查询datatime类型
    ms的题目,无聊不妨看看
    读取客户端收藏夹资料的问题
    delphi中的DBGrid无法刷新数据
    jsp与javascript
    .net2.0 web site中的cs文件怎么编译为dll
    由传奇木马引起的遐想
    com组件的调用
    Crystal Report的奇怪问题
    算法导论15章LCS实现(c++)
  • 原文地址:https://www.cnblogs.com/xwupiaomiao/p/8038214.html
Copyright © 2011-2022 走看看