zoukankan      html  css  js  c++  java
  • Shell脚本学习

    在脚本里用代码代替交互式输入操作:

    参考:http://os.51cto.com/art/200912/167898.htm

    1.安装shell工具expect:yum -y install expect*

    2.记得在文件头去掉“#!/bin/bash”,并引入“#!/usr/bin/expect”

    3.执行时,不能使用sh命令(bash脚本才用这个,即不需要"sh test.sh"),而是直接“./test.sh”即可


    如何删除n天前的旧文件:
    语句格式:
    find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} ;
    范例:
    find /tmp -mtime +10 -name "*.*" -exec rm -rf {} ;
    将/tmp目录下所有10天前带"."的文件删除
    具体解释:
    find:查找命令,用来查找指定条件的文件
    /tmp:想要进行清理的任意目录
    -mtime:标准语句写法
    +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
    "*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三
    -exec:固定写法
    rm -rf:强制删除文件,包括目录
    {} ; :固定写法,一对大括号+空格++;

    ps:find命令详解


    shell程序的If-Else语句使用注意事项:

    1、if 与[ 之间必须有空格
    2、[ ]与判断条件之间也必须有空格
    3、]与; 之间不能有空格
    范例:

    ##如果该目录不存在,则创建
    if [ ! -d "$backupPath" ];then
    mkdir "$backupPath"
    else

    ##如果该文件不存在

    if [ ! -f "$myFile" ]; then 


    fi 
    ##删除超过指定天数的旧文件
    ##find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} ;
    find $backupPath -mtime +1 -name "*.*" -exec rm -rf {} ;
    fi


    关于shell脚本如何获取当前路径并保存到变量:

    #!/bin/sh
    scriptPath1=`pwd` ##注意是单引号
    scriptPath2=$(cd `dirname $0`; pwd) ##注意是单引号
    echo "$scriptPath1"
    echo "$scriptPath2"
    这两种方式都可以获取脚本程序的当前目录(绝对路径)
    解释:
    关于`dirname $0`
    在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的".",这个命令要写在脚本文件里才有作用
    $0:表示当前Shell程序的文件名
    dirname $0:表示获取当前脚本程序的路径
    cd `dirname $0`:表示切换到当前脚本程序的目录


    查看系统目前有哪些版本的shell:cat /etc/shells


    系统启动运行的第一个进程是init

    Linux Shell 如何 debug :

    只需在sh命令后加上参数即可
    -n :不要执行 scripts ,查询 scripts 内的语法,若有错误则予以列出!
    -v :在执行 scripts 之前,先将 scripts 的内容显示在屏幕上;
    -x :将有使用到的 scripts 内容显示在屏幕上,与 -v 稍微不同!


     运算符号 代表意义

    = 等于
    != 不等于
    < 小于
    > 大于
    -eq 等于
    -ne 不等于
    -lt 小于
    -gt 大于
    -le 小于或等于
    -ge 大于或等于
    -a 双方都成立(and)
    -o 单方成立(or)
    -z 空字符串
    -n 非空字符串


     export命令:将自定义变量转成环境变量

    注意:子进程不会继承父进程的自定义变量

  • 相关阅读:
    【转+补充】在OpenCV for Android 2.4.5中使用SURF(nonfree module)
    Delphi StarOffice Framework Beta 1.0 发布
    Angular ngIf相关问题
    angularjs文档下载
    公众号微信支付开发
    公众号第三方平台开发 教程六 代公众号使用JS SDK说明
    公众号第三方平台开发 教程五 代公众号处理消息和事件
    公众号第三方平台开发 教程四 代公众号发起网页授权说明
    公众号第三方平台开发 教程三 微信公众号授权第三方平台
    公众号第三方平台开发 教程二 component_verify_ticket和accessToken的获取
  • 原文地址:https://www.cnblogs.com/xianDan/p/4292715.html
Copyright © 2011-2022 走看看