linux下powerpath对盘与更改盘符名 2016-01-02 | 平台架构 现网的几套oracle rac环境下经常会有EMC存储扩盘动作,而EMC的powerpath软件本身也会存在软件版本升级的问题。每次操作时都会担心盘符变动和一套rac下的几个节点盘符名一致的问题。通过EMC的powerpath内的emcpadm 与powermt 命令可以快速的解决该问…… Continue reading
Bash脚本15分钟进阶指导 2014-04-20 | shell脚本学习 首先声明这是网上摘来的。这里的技术技巧最初是来自谷歌的“Testing on the Toilet” (TOTT)。这里是一个修订和扩增版本。 脚本安全 我的所有bash脚本都以下面几句为开场白: 1#!/bin/bash 2set -o nounset 3set -o errexit 这样做会避免两种常见的问题: 引用未定义的变量(缺省值为“”) 执行失败的命令被忽略 需要注意…… Continue reading
shell中的getopt与getopts 2013-01-18 | shell脚本学习 在shell脚本之shift和getopts篇中有提到getopts,除了bash自带的内部变量getopts外,util-linux-ng包还提供了一个工具getopt ,该工具较bash内置的getopts更强大,其不仅支持短参-s,还支持–longopt的长参数,甚至支持-l…… Continue reading
shell脚本之shift和getopts 2013-01-17 | shell脚本学习 在系统服务和一些其他脚本中都可以看到shift和getopts参数的使用,尤其是前者。本篇就针对两者在linux shell 下的使用做下小结。 一、shift参数的使用 很多脚本执行的时候我们并不知道后面参数的个数,但可以使用$*来获取所有参数。但在程序处理的过程中有时需要逐个的将$1、$2、…… Continue reading
select与shell脚本交互界面 2012-10-28 | shell脚本学习 在shell 脚本执行过程中,经常会用到需要自我判读的人机交互的界面。而常用的交互界面有以下几种情况: 1、入参检查,$#是入参数量;$1,$2分别表示第一和第二个入参,以此类推;$0表示命令名称。这种一般会用于参数不足提示帮助信息的情况。 2、read读取用户输入的字符串,可以带提示…… Continue reading
shell数组的定义与应用 2012-10-27 | shell脚本学习 bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。shell 下的多维数组是可以通过1维数组组合的,本篇也会在后面提到多维数据。 一、定义数组 在Shel…… Continue reading
BASH的常见错误 2012-04-20 | shell脚本学习 1. for i in `ls *.mp3` 常见的错误写法: 1for i in `ls *.mp3`; do # Wrong! 为什么错误呢?因为for…in语句是按照空白来分词的,包含空格的文件名会被拆成多个词。 如遇到 01 – Don’t Eat the Yellow Snow.mp3 时,i的值会依次取 01,-,Don’t,等等。 用双引号也不行,它会将ls *.mp3的全部结果当成一个词来处理。 1for i in "`ls *.mp3`"; do…… Continue reading
shell中变量的变量与eval命令 2011-10-30 | shell脚本学习 shell 中经常会用到变量的嵌套的情况。比如,单个或多个变量的值作为变量名,再对该变量名取$获取其内部的变量的情况,这种脚本写起来很难搞,还好有eval 命令方便我们处理这种情况。便于理解,先来一个示例: 1#!/bin/bash 2a='my' 3b='site' 4my_site='my site www.361way.com' 5echo a_b is "$a"_"$b" 6echo $("$a"_"$b") 7web="$a"_"$b" 8echo web is $web 9eval echo '$'"$a"_"$b" 10eval echo '$'{"$a"_"$b"} 比如上面这个示例,猜猜看它的运行结果是什…… Continue reading
bc显示小数点前的0 2011-10-29 | shell脚本学习 bc是强大而常用的计算工具。不过在除法运算时,如果得到的结果值小于1,得到的小数前面的0不存。本篇提供几个常用小数点前缺0的解决方法。 1[root@361way ~]# bc 2bc 1.06.95 3Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. 4This is free software with ABSOLUTELY NO WARRANTY. 5For details type `warranty'. 6scale=2; 1/3 7.33 打开bc进入交互模式,我们键入scale=2; 1/3 回车,看到结果0.33前的0没有--…… Continue reading
Shell特殊变量:$0, $#, $*, $@, $?, $$和命令行参数 2011-10-22 | shell脚本学习 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(” “)包含时,与 $* 稍有不同,下面将会讲到。 $?…… Continue reading