随笔分类 -  abs(advanced bash shellscript)

摘要:1. 变量与替换#!/bin/bash# 变量替换# 另外, 变量替换还有许多别的语法# 例如, b=${a/23/bb} 将 23 替换成 bb 等等, 用到时再找a=375hello=$a# 注意空格# 如果变量中有空格, 那么变量就需要被双引号括起来hello="a b c d"echo... 阅读全文
posted @ 2015-02-24 16:56 神之一招 阅读(816) 评论(0) 推荐(0) 编辑
摘要:写脚本时要养成结构化和系统方法的习惯.1. 注释你的代码2. 给脚本和函数加上描述性的头部信息3. 避免使用硬编码的字符常量, 用有意义的变量名来代替.4. 为变量和函数选择描述性的名字 把错误代码的代表的变量名大写 并以 E_ 开头, 例如: E_NOTFOUND=75 环境变量名用大写 函数名 ... 阅读全文
posted @ 2015-01-07 09:08 神之一招 阅读(184) 评论(0) 推荐(0) 编辑
摘要:操作字符串${string: position :length} 取子串子串删除${string# substring} 从左边截掉第一个匹配的 substring${string## substring} 从左边截掉最后一个匹配的 substring${string% substring} 从右边... 阅读全文
posted @ 2014-05-08 15:12 神之一招 阅读(156) 评论(0) 推荐(0) 编辑
摘要:Test 有多种实现方式, [ 等价于 test, 并且 [ 是一个内建命令, 效率很高另外, [[]] 也是测试, [[]]结构比bash[]更灵活, 这是一个扩展test命令, 从ksh88继承过来注意: 在[[]]结构中, 将没有文件扩展或者是单词分离, 但是会放生参数扩展或命令替换.例如:f... 阅读全文
posted @ 2014-05-08 15:11 神之一招 阅读(173) 评论(0) 推荐(0) 编辑
摘要:= 在判断的中括号内, 左右两边有空格, 在赋值语句时, 左右两边没有空格+, –, *, /, ** 最后的是幂运算, 例如 let “z=5**3” echo $z # 125% 取模预算例如:n=1n=$[ $n + 1 ]echo $n # 显示 2数制表示法8进制let “oct = 03... 阅读全文
posted @ 2014-05-08 15:11 神之一招 阅读(117) 评论(0) 推荐(0) 编辑
摘要:exit 被用来结束脚本, 像C语言一样, 他也会返回一个值来传给父进程. 父进程会判断是否可用exit n n是 0 ~ 255 十进制整数有点类似程序设计中的 return, 使用 return 100 等非0数来表示不成功, 其中脚本不一样的地方可以分别返回不一样的不成功标记数 阅读全文
posted @ 2014-05-02 15:50 神之一招 阅读(172) 评论(0) 推荐(0) 编辑
摘要:引号的特殊效果就是, 保护字符串中特殊字符不被shell或者shell脚本重新解释或扩展(这里所说的”特殊”指的是一些字符在shell中具有特殊意义, 例如*)ls –l [vV]"*ls –l ‘[vV]*’我们使用引号来引用一个字符串, 目的是保护它的字面含义.特定的工具或程序可以重新解释在引号... 阅读全文
posted @ 2014-05-02 15:50 神之一招 阅读(187) 评论(0) 推荐(0) 编辑
摘要:4.1 变量替换变量替换: 是指通过变量名替换成其内部包含的变量值.变量赋值, variable 这个是变量名, $variable 这个是变量值.a=375hello=$a注意: 赋值时, 千万不要有空格“” 双引号不会影响变量替换,‘’ 单引号中不会发生变量替换$variable 是 ${var... 阅读全文
posted @ 2014-05-02 15:49 神之一招 阅读(225) 评论(0) 推荐(0) 编辑
摘要:#! /bin/bashbackupfile=backup-$(date +%m-%d-%Y)archive=${1:-$backupfile} # 上边内容, 参数替换 ${} echo $archive # 如果在命令行没有指定备份文件的文件名, 那么僵默认使用 "backup-M... 阅读全文
posted @ 2014-04-28 16:02 神之一招 阅读(167) 评论(0) 推荐(0) 编辑
摘要:#!/bin/bash# 这个脚本是用来描述和确认是否可以安装一个rpm包 # 在一个文件中保存输出SUCCESS=0 E_NOARGS=65if [ -z "$1" ] then echo "Usage: `basename $0` rpm-file" exit $E_NO... 阅读全文
posted @ 2014-04-28 14:31 神之一招 阅读(204) 评论(0) 推荐(0) 编辑
摘要:#!/bin/bash# 从 /etc/fstab 中读行File=/etc/fstab{ read line1 read line2 } < $File# {}代码块, ()命令组, 这两者之间的区别是, 代码块中定义的变量, 在代码块下部是可以访问的, 但是()命令组中定义的内容... 阅读全文
posted @ 2014-04-28 13:59 神之一招 阅读(243) 评论(0) 推荐(0) 编辑
摘要:1. #注释, #! 除外# 前后最好有个空格此外, 在参数替换 echo ${PATH#*:} 这里不表示注释, 数制转换, 不表示注释 echo $((2#101011))echo “The # does not begin a comment” 这里由于在””号内, 所以不是注释echo Th... 阅读全文
posted @ 2014-04-12 11:19 神之一招 阅读(440) 评论(0) 推荐(0) 编辑
摘要:1: 2: #Cleanup 3: # Run as root, of course 4: 5: cd /var/log 6: cat /dev/null > messages 7: cat /dev/null > wtmp 8: 9: ... 阅读全文
posted @ 2014-04-10 16:26 神之一招 阅读(351) 评论(0) 推荐(0) 编辑