Linux shell脚本的编写案例

vim ~/.bashrc      #写入环境变量配置文件

然后执行source .bashrc这个文件就生效了

unalias是删除别名  unalias vi    但是这个是临时删除,想要永久删除的话必须在配置文件.bashrc里面删除才行

 

 

 

然后取出这10条数据中:前面的

下面举个例子:判断登录用户是否为root

先env,然后把里面的User=" XX"提取出来,如果XX=root则是root用户登录

第二个例子:判断根分区的使用情况

 

 

 

 

$@:表示所有脚本的参数内容  

$#:表示所有参数的个数   如图所示

 

$?:是上次命令的执行结果

 

$0:文件名称

$123:指的是第几个参数

 

shift:向左移动

 

这里注意:要让所有目录下都可以执行这个.sh文件,应该配置环境变量,或者把它放到环境变量指定的目录,我这里把它放到了环境变量指定的目录中mv xxx.sh /usr/local/bin    如果放到了这个目录下xx.sh就可以直接执行 而不用在./xx.sh了

 

 

 

 

判断输入的是否为一个目录

 

 

另外给出一个截图,shell命令 输出的结果会一一对应,可以认真看一下

下面给出一个shell脚本,我们经常要用的是一个同步,一个调用这些功能等

#!/bin/bash

params=$@
i=201
for (( i=201 ; i <= 204 ; i = $i + 1 )) ; do
    echo ============= s$i $params =============
    ssh s$i "$params"
done

这里$params必须要加双引号,为了能够跟管道符不产生歧义,我就是没有加双引号,所以一下截图的命令就没有执行成功

可以实现的功能:把tmp目录下的文件全部删除

但是执行jps就不行了

这个原因找到了,(补充)使用xcall.sh在所有节点上创建jps符号连接,指向/soft/jdk/bin/jps
------------------------------------------------------------------
    1.切换到root用户
        $>su root
    2.创建符号连接
        $>xcall.sh "ln -sfT /soft/jdk/bin/jps /usr/local/bin/jps"
    3.修改jps符号连接的owner
        $>xcall.sh "chown -h centos:centos /usr/local/bin/jps"
    4.查看所有主机上的java进程
        $>xcall.sh jps

这个时候就能用xcall.sh jps这个j命令了

rsync -lr  $p ${user}@s$si:$fullpath  这么多代码的结果就是箭头指向的代码,这里只给出了一句,应该是多句话,   达到向多台机器上自动 同步文件的目的, 有的人说问啥不用scp呢 不也可以同步文件嘛,原因就是scp不支持符号链接,它会把符号链接转换成文件,那不是我们想要的,而rsync则支持符号链接一起同步

 

#!/bin/bash

if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi

p=$1
#echo p=$p
dir=`dirname $p`
#echo dir=$dir
filename=`basename $p`
#echo filename=$filename
cd $dir
fullpath=`pwd -P .`
#echo fullpath=$fullpath

user=`whoami`
for (( i = 202 ; i <= 204 ; i = $i + 1 )) ; do
   echo ======= s$i =======
   rsync -lr $p ${user}@s$i:$fullpath
done ;

 

 

这里再还有两点没有说出来:rsync -lr r是递归,l是链接 

cd $dir 执行这句话是进入到/root/App这个目录下了

'pwd -P'是物理路径  ‘pwd -P .’加一个.就是指当前的物理路径,所以结果会输出存放a.txt文件的物理路径即/root/App

 

 

 

有兴趣的朋友可以自己看着代码敲下然后执行下你就能很快的明白了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值