[2019.03.20]Linux Shell 执行传参数和expr
前不久入职实习生,现在在帮着组里面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的更多相关文章
- linux shell执行方式
linux shell执行有两种方式 shell脚本以#!/bin/bash开头,执行shell时先检查首行,在内部以下列方式执行: $/bin/bash script.sh 1. 使用sh执行. $ ...
- [2019.03.25]Linux中的查找
TMUX天下第一 全世界所有用CLI Linux的人都应该用TMUX,我爱它! ======================== 以下是正文 ======================== Linu ...
- Linux shell中一些参数与变量简介
linux中shell变量$#,$@,$0,$1,$2,$!,$$,$*,$-,$@......等很多个,很容易记错,这里再次整理一下,相关含义解释如下,并附上一个实践截图. 多看几次,多用几次,应该 ...
- Shell script 传参数处理(默认变量)
变量 含义 $0:shell脚本的名字: $1 位置参数 #1 $2 - $9 位置参数 #2 - #9 ${10} 位置参数 #10 "$*" :代表"$1c$2c$3 ...
- linux shell 执行命令顺序
1.shell命令搜索顺序 在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为: 1.别名,使用alias创建的 ...
- Linux Shell : Test命令参数解析
格式: test conditions test -n string : string 不为空 test -z string : string 为空 test int1 -eq int2 : int ...
- Linux中执行脚本参数获取
Linux中变量$[#,@,0,1,2,*,$,?]含义 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $ ...
- Linux Shell 如何获取参数
$# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示 ...
- linux shell执行原理
shell简介 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. 运行背景 a 一个基本的linux系统结构 b.由上图可以看出,shel ...
随机推荐
- C#线程安全使用(五)
CancellationToken的多种应用 这是线程安全的最后一篇了,主要介绍CancellationToken的多种应用. 1,ThreadPool直接启动线程,传递CancellationTo ...
- C#语法——元组类型
元组Tuple 我们现在使用的C#语法已经可以满足日常的开发需求,但C#语法还在进行版本的更新,在创造更多更优秀的语义来让我们使用.这里介绍一下C#5.0里的提供的语法——元组. 在C#中定义T ...
- 基于“formData批量上传的多种实现” 的多图片预览、上传的多种实现
前言 图片上传是web项目常见的需求,我基于之前的博客的代码(请戳:formData批量上传的多种实现)里的第三种方法实现多图片的预览.上传,并且支持三种方式添加图片到上传列表:选择图片.复制粘贴图片 ...
- netty的好处
netty作为一个高性能的异步通信框架,它到底有哪些好处了,又用到哪些基础技术呢? 1.使用ServerBootstrap 作为netty服务端的启动辅助类,并且在创建ServerBootstrap时 ...
- Flask实战第5天:页面跳转和重定向
GET和POST请求 在网络请求中有许多请求方式,比如GET, POST, DELETE, PUT等,最常用的就是GET和POST GET 只会在服务器上获取资源,不会更改服务器的状态,这种请求方式推 ...
- arcgis api 3.x for js 入门开发系列十八风向流动图(附源码下载)
前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...
- Android远程桌面助手(B1371)
Android远程桌面助手(B1371),下载:https://files.cnblogs.com/files/we-hjb/ARDC%28B1371%29.7z 1.增加了对超大分辨率4320*21 ...
- MIUI12系统怎么样开启Root超级权限的流程
MIUI12系统能有啥方法开启root超级权限?各位都清楚,Android机器有root超级权限,如果手机开启root相关权限,可以实现更好的功能,举例子,各位公司的营销部门,使用某些营销软件都需要在 ...
- Win10系统下装Ubuntu虚拟机的遇到的问题总结
环境和工具 win10操作系统 VMware Workstation 12 Ubuntu 14.0 64位 教程可参考:VMware Ubuntu安装详细过程(非常靠谱) [因为我的安装过程不是十分顺 ...
- Numpy库的学习(四)
我们今天继续学习一下Numpy库 接着前面几次讲的,Numpy中还有一些标准运算 a = np.arange(3) print(a) print(np.exp(a)) print(np.sqrt(a) ...