zoukankan      html  css  js  c++  java
  • shell脚本

    编写脚本

    1.xcall.sh
    
    为了在任何目录下都可以执行,可以配环境变量或环境变量指定的目录,如:/usr/local/bin/
    因为访问其他主机时,只能调用 在 /usr/bin 或 /usr/local/bin下配置的命令
    
    2.xsync.sh
    
        #!/bin/bash
        if [[ $# -lt 1 ]] ; then echo no parameters; 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 ;
    
      -l :软连接的复制
        xsync.sh /home/etc/a.txt
        rsync -lr /home/etc/a.txt centos@s202:/home/etc
    
    -l:表示可以复制软连接(包括内部东西)
    r:递归

     $?  //命令的返回值存储变量,0:成功 1:失败。
     $#  //参数个数
     $1  //第几个参数
     $0  //当前脚本(命令)名称
     $@  //取出所有参数
     shift //参数左移
     ${a/b/c} //


    while循环实现99乘法表.

    #!/bin/bash
    i=1
    lines=$1
    while(( i<=lines )); do
    j=1
        while(( j<=$i )) ;do
        echo -ne ${j}x${i}=$(( j*i ))'	';              //-n不换行,-e:转义符,转义后面的 	 $(())是进行数值运算
        j=$(( j+1 ));
        done;
    i=$(( i+1 ))
    echo ;
    done ;

    xxcall.sh:(不使用for循环遍历数据节点的情况)
     1 #!/bin/bash
     2 
     3 params=$@
     4 
     5 hosts=`cat /soft/hadoop/etc/hadoop/slaves`
     6 
     7 for host in $hosts ; do
     8     tput setaf 2
     9     echo ============= $host =============
    10     tput setaf 7
    11     ssh -4 $host "source /etc/profile ; ${params}" 
    12 done
  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/yihaifutai/p/6822865.html
Copyright © 2011-2022 走看看