博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell脚本学习
阅读量:5030 次
发布时间:2019-06-12

本文共 1674 字,大约阅读时间需要 5 分钟。

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

参考: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:


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

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

转载于:https://www.cnblogs.com/xianDan/p/4292715.html

你可能感兴趣的文章
Java:创建线程
查看>>
Java: 面向对象程序设计(下)
查看>>
java小练习
查看>>
bsxfun: normalizing many vectors
查看>>
深入理解Java中的final关键字
查看>>
jvm并发之锁类别
查看>>
Cocoa Touch 层
查看>>
设计模式的六大原则
查看>>
0815------算法笔记----------矩阵连乘问题
查看>>
科研感想
查看>>
Intellij IDEA 安装lombok及使用详解
查看>>
python面试
查看>>
窗口大小
查看>>
JavaScript中的typeof运算符
查看>>
设置表格边框css样式
查看>>
理解nodejs中的stream(流)
查看>>
课程总结
查看>>
SSM框架搭建以及简单增删改查以及分页功能的实现(前端bootstrap+css+jq)
查看>>
Linux文件的查找
查看>>
SCRUM站立会议模拟
查看>>