前不久入职实习生,现在在帮着组里面dalao们跑Case,时不时要上去收一下有木有Dump,每次敲命令太烦人于是逼着自己学写Shell脚本。一开始真的是很痛苦啊,也没能搞到书,只能凭网上半真半假的消息照葫芦画瓢!废话少说,上正文!

=========================我是分割线=========================

 clear

 echo "Check_dump is a tool help you check dumps"

 numberOfSPs=
commands="-lcd"
###########################################################
#
# getopts 命令是 Korn/POSIX shell 的内置命令
# ,用来从参数列表检索选项以及选项参数。选项由一个+(加号)
# 或者是由一个-(减号)后跟一个字符开始。一个既不是以+,也不
# 是以-开始的选项结束选项字符串。每次调用 getopts 命令时,它
# 将下一个选项的值放置在 Name 内,并将下一个要处理的参数的索引
# 置于 shell 变量 OPTIND 中。每当调用 shell 时,都会将
# OPTIND 初始化为 。当选项以 + 开头时,会将 + 预
# 追加到 Name 中的值。
#
########################################################## while getopts ":a:b:c:n:" opt # 如果选项字符串中的字符后面带有“:”(冒号),那么预期此选项将带有参数。
# 在这里a前面有没有冒号会决定下面的*/?能不能起效
# 详细的说明可以参考 https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_71/com.ibm.aix.cmds2/getopts.htm
do
case $opt in
a)
d1=$OPTARG # 当选项需要选项参数时,getopts 命令就将其置于变量 OPTARG 中
echo "d1 is $d1 "
;; # 一定要记得加上末尾的;;,相当于其它语言的 break
b)
d2=$OPTARG # OPTARG 出现了,他就是取得参数的具体地方
echo "d2 is $d2, and destination is $d1.$d2" # Shell 里面的变量很有意思,直接这样写就能顺着输出出来
;; # 双引号会解析字符串里面的转义字符和变量名,单引号不会
c)
commands=$OPTARG
echo " Addtional command: $commands "
;;
n)
numberOfSPs=$OPTARG
echo "Number of SPs has changed to $numberOfSPs "
;;
*) # * 或者 ? 匹配所有不是上面列出的东东
echo "Usage: check_dump -a<xxx.xxx.xxx> -b<xxx> -c<commands> -n<number of SP>
And the destination is IP for Unisphere."
exit
esac
done i=
while [ $i -le $numberOfSPs ]
do
d2=$((d2+))
destination="$d1.$d2"
echo "=============================================
checking SP$i, destination is :$destination" # 很有趣吧,直接在字符串里面换行,打印输出内容也会换行!
i=$((i+)) # $(()) 和 下面的 ``是一样的,表示里面的东东可以执行,需要执行以后再做其他操作
res="`ssh $destination svc_dc $commands`"
if [[ ${#res} == ]];then # 比较应该深度学习的“expr指令”的缩写版本,原版有些指令少而不太好使
# 看到if后面跟的什么了没!!!!";then""五个字符一个不能少!
echo "No dumps"
else # 分支比较多的话还可以选择用elif[[ condition ]];then
echo "Found dumps:
$res"
fi done
exit

就是这样子,在想到什么就再往上面丢点什么吧!

[2019.03.20]Linux Shell 执行传参数和expr的更多相关文章

  1. linux shell执行方式

    linux shell执行有两种方式 shell脚本以#!/bin/bash开头,执行shell时先检查首行,在内部以下列方式执行: $/bin/bash script.sh 1. 使用sh执行. $ ...

  2. [2019.03.25]Linux中的查找

    TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...

  3. Linux shell中一些参数与变量简介

    linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图. 多看几次,多用几次,应该 ...

  4. Shell script 传参数处理(默认变量)

    变量 含义 $0:shell脚本的名字: $1 位置参数 #1 $2 - $9 位置参数 #2 - #9 ${10} 位置参数 #10 "$*" :代表"$1c$2c$3 ...

  5. linux shell 执行命令顺序

    1.shell命令搜索顺序 在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为: 1.别名,使用alias创建的 ...

  6. Linux Shell : Test命令参数解析

    格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2  : int ...

  7. Linux中执行脚本参数获取

    Linux中变量$[#,@,0,1,2,*,$,?]含义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $ ...

  8. Linux Shell 如何获取参数

    $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示 ...

  9. linux shell执行原理

    shell简介 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. 运行背景 a 一个基本的linux系统结构 b.由上图可以看出,shel ...

随机推荐

  1. SLAM+语音机器人DIY系列:(二)ROS入门——8.理解roslaunch在大型项目中的作用

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...

  2. 【网摘】C#中TransactionScope的使用方法和原理

    时间 2013-08-12 19:59:34  51CTO推荐博文 原文  http://cnn237111.blog.51cto.com/2359144/1271600 在.net 1.1的时代,还 ...

  3. [PHP] MIME邮件协议的multipart类型

    邮件协议中的三种情况,对应下面的三种类型 multipart/mixed可以包含附件.multipart/related可以包含内嵌资源.multipart/alternative 纯文本与超文本共存 ...

  4. MongoDB学习(操作集合中的文档)

    文档概念 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 insert()方法 ...

  5. mysql入门知识

    数据库 什么是数据库就是存储数据的仓库(容器) 存储数据的方式1.变量 无法永久存储2.文件处理 ,可以永久存储 文件处理存在的弊端: 1.文件处理速度慢 2.文件只能在自己的计算机上读写 无法被共享 ...

  6. vue v-for动画bug

    因为是v-for 循环 出来的,:key = "index" 会出现问题,所以,需要把:key="XXX"换成其他属性就好了. 链接参考: https://se ...

  7. Vue与React两个框架的区别对比

    简单介绍 React--Facebook创建的JavaScript UI框架.它支撑着包括Instagram在内的大多数Facebook网站.React与当时流行的jQuery,Backbone.js ...

  8. Storm入门-Storm与Spark对比

    作为一名程序员通病就是不安分,对业界的技术总要折腾一番,哪怕在最终实际工作中应用到的就那么一点.最近自己准备入门Storm学习,关于流式大数据框架目前比较流行的有Spark和Storm等,在入门之前, ...

  9. Git常用命令使用大全

    1.查看.添加.提交.删除.找回,重置修改文件 git help <command> # 显示command的help git show # 显示某次提交的内容 git show $id ...

  10. Jdk 接口类RandomAccess了解

    1. 接口说明 Marker interface used by List implementations to indicate that they support fast (generally ...