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命令:将自定义变量转成环境变量

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

  • 相关阅读:
    moviepy音视频剪辑:视频基类VideoClip子类VideoFileClip、CompositeVideoClip、ImageSequenceClip介绍及使用案例
    moviepy执行TextClip.search方法时报错TypeError: a bytes-like object is required, not str
    python学习接口测试(二)
    python 接口测试(一)
    接口测试学习
    python 将表格多个列数据放到同一个单元格中
    python对表格的使用
    python 下实现window 截图
    python selenium 下拉框
    selenium+chrome下载文件,格式怎么选择???
  • 原文地址:https://www.cnblogs.com/xianDan/p/4292715.html
Copyright © 2011-2022 走看看