linux系列之-—01 shell编程笔记
一、特殊变量($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-shell编程笔记01
- 跟着鸟哥学Linux系列笔记1
- Linux 学习笔记_10_Shell编程_1_Shell编程语法
- linux学习笔记之shell编程(三)流程控制(2)---case语句
- Linux常用命令学习笔记(01)
- Linux——shell编程笔记
- linux 运维课程学习笔记01
- Linux(CentOs6.6)系统学习笔记系列之一
- 《Linux》天影linux系列笔记一——linux常用命令详解:chmod
- 《Linux》天影linux系列笔记一——linux常用命令详解:find
- 《Linux》天影linux系列笔记一——linux常用命令详解:gzip
- linux笔记:shell编程-正则表达式
- linux 驱动调试笔记二----LCD驱动01
- Linux基础系列修炼---笔记2
- 【韩顺平Linux笔记01】vi编辑器的使用
- JAVA学习笔记01——Linux常用命令详解
- linux笔记01(完美VI)
- Linux_day_01笔记
- linux C笔记5——Shell编程之函数
- linux 学习笔记01 top