您的位置:首页 > 运维架构 > Shell

linux系列之-—01 shell编程笔记

2018-07-04 17:25 218 查看

一、特殊变量($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}'

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: