![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell脚本
ahaogege
这个作者很懒,什么都没留下…
展开
-
break和continue在循环中的使用
打印出1至9,但是不打印其中的4和6这样写:#!/bin/basha=0max=9echo "test continue"while [ "$a" -lt $max ]dolet "a+=1"if [ "$a" -eq 4 ] || [ "$a" -eq 6 ]thencontinuefiecho "$a"done输出原创 2012-04-29 16:41:29 · 237 阅读 · 0 评论 -
嵌套循环
模仿一个嵌套循环,看下输出,就知道嵌套循环的规律,一般程序中的循环都是这样,必须的。#!/bin/bashouter=1for i in 1 2 3doecho "pass $outer in outer loop"inner=1for i in 1 2 3 4 5doecho "pass $inner in inner loop"let "inner+=1...原创 2012-04-19 21:01:27 · 103 阅读 · 0 评论 -
操作字符串命令(提取,消除,替换)
1.expr提取格式:expr match "$string" '$substring'$substring 是一个正则表达式expr "$string" : '$substring'$substring 是一个正则表达式从字符串开始的位置匹配字符串的长度,也即是算出这些匹配的字符串长度写了个脚本测试stringZ=abcABC123ABCabc...原创 2012-04-16 20:05:31 · 293 阅读 · 0 评论 -
参数替换
第一种参数替换如脚本#!/bin/bashyou_id=${USER}-on-${HOSTNAME}echo $you_idmy_id=$USER-on-$HOSTNAMEecho $my_idecho -----------------------------------echo ${USER-`who am i`}echo ${USERNAME-`who a...原创 2012-04-15 11:42:44 · 287 阅读 · 0 评论 -
特殊字符梳理
双引号""在一个双引号中直接使用变量名,一般都是没有问题的.双引号阻止了所有在引号中的特殊字符的重新解释--包括变量名,但是$,`和\除外.保留$,作为特殊字符的意义,是为了能够在双引号中也能够正常地引用变量("$var").这样在""中可以使用变量所表达的值从上面的解释中,可以知道特殊字符除了$、`、\外都是不起作用的#号#号一般是一个注释,但在以下情况下属于...原创 2012-04-15 11:18:30 · 112 阅读 · 0 评论 -
eval命令的使用
evaleval arg1 [arg2] ... [argN]将表达式中的参数,或者表达式列表,组合起来,并且评估它们.包含在表达式中的任何变量都将被扩展.结果将会被转化到命令中.这对于从命令行或者脚本中产生代码是很有用的.写了个脚本测试#!/bin/bashy=`eval ls -l`echo "$y"echo "-------------------------...原创 2012-04-14 21:34:03 · 438 阅读 · 0 评论 -
远程登录机器重启某个应用
最近准备写一个脚本重启远程某个机器上的应用,尝试了几种方法1.第一种方法: 首先设置一下使得ssh登录不需要密码#!/bin/bashssh root@192.168.161.5<<!cd /opt/NMS/server/binnohup ./Server.sh >/dev/null &!这个方法会...原创 2012-04-14 21:24:01 · 162 阅读 · 0 评论 -
没事干,写了个核查数据的脚本
根据此业务数据核查的一些共性,写了个脚本,安排组员使用这个脚本核查的时候就不必要说一大堆,简单,方便。记录下。#!/bin/bashE_BADARGS=67if [[ $1 =~ [^0-9]+ ]]||[[ $1 -lt 1 ]]||[[ $1 -gt 14 ]]thenecho "This \$1 parameters must be Interger(00-14).";e...原创 2012-08-05 17:14:30 · 464 阅读 · 0 评论 -
find命令中的mtime参数
要写一个定时删除log的日志,需要用到这个命令,记录下。find命令的一个总结 -mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件; -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名; -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。这里 -mtime +n是不包...原创 2012-08-05 12:59:53 · 162 阅读 · 0 评论 -
shift的使用
使用shift来穿过所以的位置参数#!/bin/bash#until [ -z $1 ]#do#echo -n "$1"#shift#done#echo#exit 0echo $1shiftecho $1 [root@ahaogege haha]# ./4.7.sh 1 212 这个例子可以看出使用shift可以把最前的一个位置...原创 2012-04-08 10:49:51 · 91 阅读 · 0 评论 -
bash变量的类型
不像其他程序语言一样,Bash 并不对变量区分"类型".本质上,Bash 变量都是字符串.但是依赖于上下文,Bash 也允许比较操作和算术操作.决定这些的关键因素就是,变量中的值是否只有数字.bash-3.00# more int-or-string.sh #!/bin/basha=2334let "a += 1"echo "a=$a"echob=${a/2...原创 2012-04-08 10:32:32 · 111 阅读 · 0 评论 -
变量赋值和替换
#!/bin/basha=28hello=$aecho helloecho $helloecho ${hello}echo "$hello"echo "${hello}"echohello="a b c d"echo $helloecho "$hello"echo '$hello'echohello=echo "\hell...原创 2012-04-08 02:14:01 · 211 阅读 · 0 评论 -
位置参数的使用
[size=large]$0, $1, $2,等等...位置参数,从命令行传递给脚本,或者是传递给函数.或者赋职给一个变量.$#命令行或者是位置参数的个数.$*所有的位置参数,被作为一个单词.注意:"$*"必须被""引用.$@与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,并没有被解释和扩展.这也意味着,每个参数列表中...原创 2012-04-07 20:29:36 · 523 阅读 · 0 评论 -
for循环
[size=large]以一道练习题为例子1.编写一个if命令的语句:判断某个用户是否存在于/etc/passwd文件如果存在打印输出Found $USER in the /etc/passwd如果不存在打印no such user on my system这里读取/etc/passwd文件,然后进行判断是否存在用户,这个文件里面肯定不止一个用户,那么就要进行循环读取了,要...原创 2012-04-07 13:44:27 · 113 阅读 · 0 评论 -
case的用法
这几天都在忙验收的事情,验收终于完了,也有时间写写博客。今天因工作需要,改了个脚本,也学习到了shell脚本中的一个在代码块中依靠条件去决定程序的分支的语句。[color=blue]case命令是一个多分支的if/else命令[/color]这个语句的结构是这样的case "$variable" in"$condition1")command...;;"$condi...原创 2012-03-31 20:41:17 · 133 阅读 · 0 评论 -
传送文件到多个远程机器的脚本
写一个传送文件到远程机器的脚本因为在进行升级操作的时候,一些应用的文件都需要替换,如果一个一个替换会很麻烦也很慢,所以有必要写个脚本进行传送。因为这些应用在各个远程机器上的部署路径都是一样的,脚本就相对简单很多了。ps:中式英文都是经过谷歌认证的#!/bin/bashremote_ip="192.168.161.5 192.168.161.5" jar_dir="/opt/...原创 2012-05-01 23:48:21 · 157 阅读 · 0 评论 -
转义符
转义是一种引用单个字符的方法,一个具有特色含义的的字符前面加上一个转义符(\)就告诉shell这个字符失去了特殊的含义 对于特定的转义符 \n 意味着新的一行 \r 回车 \t tab 键 小游戏 #!/bin/bash var="'(]\\{}\$\"" echo $var ...原创 2014-03-27 22:20:01 · 127 阅读 · 0 评论