一、特殊变量($0、$1、$2、 $?、 $# 、$@、 $*)

shell编程中有一些特殊的变量可以使用。这些变量在脚本中可以作为全局变量来使用。

名称 说明
$0 脚本名称
$1-9      脚本执行时的参数1到参数9
$? 脚本的返回值    
$# 脚本执行时,输入的参数的个数
$@ 输入的参数的具体内容(将输入的参数作为一个多个对象,即是所有参数的一个列表
$* 输入的参数的具体内容(将输入的参数作为一个单词)

$@与$*的区别:

  $@与$*都可以使用一个变量来来表示所有的参数内容,但这两个变量之间有一些不同之处。

  $@:将输入的参数作为一个列表对象

  $*:将输入的参数作为一个单词

二、shell中“>”和“>>”的区别

>:创建

>>: 追加

三、shell 中的括号

State=`grep "Current state of '$ServerName'" tmp$$ | cut -d ":" -f 3 | sed 's/ //g'`

grep

cut ------------先按:分段,-f就是分段后取第几个字段。

sed   --------s表示替换,s/ //g 表示空格替换为空,最后的g标志表示全部替换

echo '保留3天备份'

cd $jenkins/backup/

ls -lrt --time-style="+%Y-%m-%d %H:%M %z" $servername_*.tar.gz | awk '{print $6,$7,$9;}' | while read filename
do
mk_date=`echo $filename | awk '{print $1}'`
mk_filename=`echo $filename | awk '{print $3}'`
t1=`date -d "3 day ago" +%s`
t2=`date -d "$mk_date" +%s`
echo $t1
echo $t2
echo '==============:'[ $t1 -gt $t2 ]
if [ $t1 -gt $t2 ]
then
rm $mk_filename
echo 'REMOVE FILE '$jenkins/backup/$mk_filename
else
echo ''
fi
done

根据jar文件名生成本次升级涉及工程列表

ls -l *.jar|awk '{print $9}'|awk -F '.' '{print $1}'

四、复制指定目录及子目录下特定类型的文件

方法一:当不需要的文件类型较为单一时,可以通过完全复制然后删除指定类型的文件完成

---1.1 删除指定目录下指定文件
find 要查找的目录名 -name '*.jar' |xargs rm -r
---1.2删除指定名称的文件或文件夹
find 要查找的目录名 -type d | grep .svn$ | xargs rm -r

方法二:需要的文件为单一类型,带目录结构复制

Step1 建立目录test3
  mkdir test3

Step2 将指定类型文件带目录结构打包
  find test/ -name '*.txt' |xargs tar czf test3.tgz

Step3 解包到目录test3
  tar zxvf test3.tgz -C test3

转载于:https://www.cnblogs.com/liuyitan/p/9264025.html

linux系列之-—01 shell编程笔记相关推荐

  1. linux系列(七):shell编程、shell概念、ssh协议概念、执行shell文件的三种方式

    1 概念 https://www.xshell.com/zh/free-for-home-school/ 1.1 xshell(执行linux命令的客户端软件) Xshell [1] 是一个强大的安全 ...

  2. Linux知识点回顾之shell编程

    Linux知识点回顾之shell编程 shell编程 1 基本介绍 1.1 Shell 脚本 1.2 Shell 环境 1.3 第一个shell编程 1.4 运行 Shell 脚本有两种方法: 1.5 ...

  3. linux+shell+func,Linux shell编程笔记总结

    Linux Shell学习笔记简介 Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口.它是命令语言.命令解释程序及程序设计语言的统称.shell是用户和Linux内核之间的接 ...

  4. 《linux命令行与shell编程大全》--读书笔记

    1.初识Linux shell 图片链接 2.走进shell 1.进入命令行,CLI(command line interface),也叫Linux控制台 通过Linux控制台终端访问CLI Ctrl ...

  5. Linux高级命令和Shell编程

    1.Linux高级命令 该章节的所有操作都在/export/data/shell目录进行,请提前创建该目录. mkdir -p /export/data/shell/ 1.1.重定向命令 1.重定向& ...

  6. Linux 命令行与shell编程 第10章 构建基本脚本

    本章内容 构建基本脚本 使用多个命令 创建shell脚本文件 现在我们已经介绍了Linux系统和命令行的基础知识,可以开始编程了.本章讨论编写shell脚本的基础知识.在开始编写自己的shell脚本大 ...

  7. 第13章代码《跟老男孩学习Linux运维:Shell编程实战》

    本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者. <跟 ...

  8. shell 字典_腾讯T4周末不陪对象,就为了手打这份shell编程笔记

    这个周末,为了某些原因,我把shell编程的一些基础知识进行了相应的整理,这里分享给大家,大家在看的时候,有什么问题可以在下方评论区给我留言呀,欢迎转发 自己纯手打,原创不易,谢谢支持 *基础引入* ...

  9. Linux进阶之路———Shell 编程入门

    引言 通过 Shell 编程的学习,铺平架构师道路上的一块大砖. Shell 在Linux 系统中的定位如下所示: 一.第一个 Shell 脚本 我们通过一个简单的 Shell 脚本来感受一下. 在 ...

最新文章

  1. C# Get network adapter info.
  2. Android UI(继承控件)--PopupWindow设置动画
  3. .net 网页播放器
  4. MyBatis 源码分析 - 插件机制
  5. mysql sum很慢,可以在MySQL中加快sum()吗?
  6. 13.函数式编程:匿名函数、高阶函数、装饰器
  7. Python实现给定两点经纬度数据求解两点平面直线距离与方位角
  8. html 编辑器插件安装,最新版CKEditor的配置方法及插件(Plugin)编写示例
  9. java 监听udp_Java实现Udp网络编程
  10. 高通无线网卡驱动linux,ubuntu下安装Qualcomm Atheros QCA6174无线网卡驱动方法
  11. 微软产品无法通过代理连接互联网解决办法
  12. 2022全球程序员薪资排行:中国倒数,美国写Go最挣钱
  13. #1005. 三个小朋友分糖果
  14. DC-DC升压IC测试及EN脚讲解
  15. statusbar 纯白色的解决方案 android:fitsSystemWindows
  16. Kill Demodogs——c++——pow_na的博客
  17. C语言从入门到精通 【精读C Prime Plus】【C语言笔记1-4章节】【更新中~】
  18. 2023-04-03 Linux中杀死进程kill和killall命令的区别,着重介绍killall
  19. 培养气质的98个好习惯
  20. 定价的艺术:苹果和网飞对最优订阅价格的理解

热门文章

  1. java判断long 大于0_JAVA的一道习题:找出五个大于Long.MAX_VALUE的素数
  2. linux 打包库文件,Linux的文件的打包(tar方法)
  3. java transient 应用场景_关于java:transient关键字的用途是什么以及何时使用它?...
  4. java中paint_java中paint()的具体用法是什么?
  5. Spring Security UserDetailsService
  6. freecplus框架-文件操作
  7. kubelet配置cni插件_Kubernetes CNI网络插件
  8. 数据传输服务 DTS > 数据迁移 > 同一阿里云账号实例间迁移 > RDS实例间的数据迁移
  9. Docker禁令生效,开始限制所有被美国列入实体清单的公司和个人使用Docker
  10. Java基础学习总结(153)——HashMap、Hashtable、ConcurrentHashMap的原理与区别