shell 注意事项

shell注意事项

  • 记录日志
  • shell执行加锁(针对不能同时执行)
  • 加选项(禁止直接执行)
  • 备注
#记录日志
#!/bin/bash

shell_log="./shell_log"

#Write log
shell_log(){
        shell_info=$1
        echo "$(date +%Y-%m-%d)T$(date +%H:%M:%S) : $shell_info"
}

shell_log $1
#综合示例
#!/bin/bash
#Author:duanyifei
#20170703

#shell Env
fastcdn_local_log="./fastcdn_local_log"
fastcdn_log="./fastcdn_log"
local_log="./local_log"
shell_name="duanyifei.search.sh"
shell_lock_file="/tmp/${shell_name}.lock"
domains=`cat yuming`

#fastcdn Function
fastcdn(){
        echo -e "\033[31m ----------$1--------------  \033[0m"
        dnstmk.pl  -u $1 | grep ‘IN‘
        echo
}

#local Function
local(){
        checklocaldns -u $1
        echo
}

#All Function
all(){
        fastcdn $1
        local $1
        echo
}

#shell_lock
shell_lock(){
    touch $shell_lock_file
}

#shell_unlock
shell_unlock(){
    rm -rf $shell_lock_file
}

#main Function
main(){
    if [ -e $shell_lock_file ];then
        echo "duanyifei_search_shell is running" && exit
    fi
    shell_lock
    case $1 in
        fastcdn)
            rm -rf $fastcdn_log
            for domain in $domains
            do
                fastcdn $domain &>> $fastcdn_log
            done
            ;;
        local)
            rm -rf $local_log
            for domain in $domains
            do
                local $domain &>> $local_log
            done
            ;;
        all)
            rm -rf $fastcdn_local_log
            for domain in $domains
            do
                all $domain &>> $fastcdn_local_log
            done
            ;;
        *)
            echo "Usage: fastcdn | local | all"
    esac
    shell_unlock
}

#Exec
main $1
时间: 2024-10-11 14:16:24

shell 注意事项的相关文章

[笔记] linux shell 注意事项

1      $1,$2,$3 分别代表输入的第一,第二,第三个参数. 2      if   之后要加then           elif endif  结束要写 fi 3      do 结束要对应 done   shell 里面有中括号写法比如 :for[] 4     [email protected] 代表全部参数,展开为多个字符 $*  代表全部参数,展开为一个字符 $#   参数个数 $?   上一个命令的返回结果 $$ 当前命令所在的进程号

shell 博客目录

shell shell 基础 shell 变量 shell 字符串 shell 数组 shell 参数传递 内建命令 管道和重定向 shell 注意事项 shell 脚本中 “set -e” 的作用 Awk Sed 参考资料 菜鸟教程 shell 原文地址:https://www.cnblogs.com/rivsidn/p/11004857.html

Shell 脚本格式注意事项

if 条件判断格式 if [ ! -f file.txt ];then cmd else cmd fi 注1:! 代表非.不存在文件就成功. 注2:再有参数 变量 需要 [] 阔起 1 运算书写写格式 变量1 = 0 变量1 = `expr 变量1 + 1` 结果:"变量1 = 0 + 1" = 2 1 for 循环格式 for i in 值1 值2 值3 值4;do cmd done 注:值1与值2.. 之间使用空格分开 1 Shell 脚本格式注意事项 原文地址:https://w

shell中使用while循环ssh的注意事项

需要读取一个文本,次文本每一行包含一个IP在while循环中使用ssh,但ssh完第一行后就退出了,如何避免自动读取一行就跳出while循环,此文将详细解释其原因.      最近在写一个自动更新的shell,可是发现如果在使用while循环从一个文件中读取ip地址,然后访问就只能读取第一行纪录.代码如下: while read LINE do echo *******************************************$LINE ssh 192.168.10.233 ls

在centos系统shell脚本中cat和重定向符号<<EOF结合使用的注意事项

在运维人员编写shell脚本中,有时会需要将一些内容直接放在到一个文件,比如在一个shell脚本中配置一些内容再生成一个shell脚本,此时可以使用到cat命令和重定向符号"<<"以及EOF的使用.但是,在shell脚本中使用重定向符号生成shell脚本时,会遇到一些问题,比如,内容中含有特殊符号"#","`","$"时,(如果以"#"开头,则需要加转义符"\")重定向会忽略

shell 脚本注意事项

设脚本名为test.sh 第一行应该为#! /bin/bash 1.运行和调试的结果是不一样的 调试 sh -x test.sh  这时在计算两个数的和sum=$[$a+$b]时得到sum=3+4,而不是7 运行 要先给脚本加执行权限 ,执行科的结果7 2.在同一行后还有其他命令则需分号隔离:if 条件判断之后 要有 then 关键字,然后才是命令 3.判断条件使用[]括起来,里面的条件和中括号之间要有空格分割,且算术比较不能用运算符只能用-lt,-gt,-le.-ge,-eq,-ne; 若要用

Mac神器Iterm2的Shell Integration的用法和注意事项

在iterm2 v3.0版本中有了个新的feature——Shell Integration,其中比较重要的功能就是可以取代传统的“rz”.“sz”(即:向服务器上传.下载文件) 具体的用法可以参见官网所示: https://iterm2.com/documentation-shell-integration.html 下面列出一些特别要注意的四项内容(这四项内容是我踩过的坑) 注意项一: curl -L https://iterm2.com/misc/install_shell_integra

Shell中重定向&lt;&lt;EOF注意事项

作者:iamlaosong 我们经常在shell脚本程序中用<<EOF重定向输入,将我们输入的命令字符串作为一个执行程序的输入,这样,我们就不需要在那个程序环境中手工输入命令,以便自动执行我们需要的功能,例如: sqlplus emssxjk/emssxjk <<EOF select count(*) from sncn_yxyj where create_date like sysdate; EOF 其中的SQL语句相当于在sqlplus程序环境中输入的,这样输入的内容夹在两个E

Linux编写shell脚本的注意事项

命令的运行是从上而下.从左而右的分析与运行: 命令的下达就如同第五章内提到的: 命令.选项与参数间的多个空白都会被忽略掉: 空白行也将被忽略掉,并且 [tab] 按键所推开的空白同样视为空白键: 如果读取到一个 Enter 符号 (CR) ,就尝试开始运行该行 (或该串) 命令: 至於如果一行的内容太多,则可以使用『 \[Enter] 』来延伸至下一行: 『 # 』可做为注解!任何加在 # 后面的数据将全部被视为注解文字而被忽略! 如此一来,我们在 script 内所撰写的程序,就会被一行一行的