摘要: 为了方便我们每个人的学习,这里将给出Linux Shell高级技巧五篇系列博客的目录以供大家在需要时参阅和查找。Linux Shell高级技巧(一) http://www.cnblogs.com/stephen-liu74/archive/2011/12/22/2271167.html一、将输入信息转换为大写字符后再进行条件判断二、为调试信息设置输出级别三、判断参数是否为数字四、判断整数变量的奇偶性五、将Shell命令赋值给指定变量,以保证脚本的移植性六、获取当前时间距纪元时间(1970年1月1日)所经过的天数Linux Shell高级技巧(二) http://www.cnblogs.com. 阅读全文
posted @ 2012-01-04 07:20 OrangeAdmin 阅读(11701) 评论(2) 推荐(9) 编辑
摘要: 二十五、通过FTP下载指定的文件: 相比于手工调用FTP命令下载文件,该脚本提供了更为方便的操作方式。 /> cat > test25.sh #!/bin/sh #1. 测试脚本参数数量的有效性。 if [ $# -ne 2 ]; then echo "Usage: $0 ftp://... username" >&2 exit 1 fi #2. 获取第一个参数的前六个字符,如果不是"ftp://",则视为非法FTP URL格式。这里cut的-c选项表示按照字符的方式截取第一到第六个字符。 header=`echo $1 | c 阅读全文
posted @ 2012-01-01 00:03 OrangeAdmin 阅读(8397) 评论(2) 推荐(1) 编辑
摘要: 十九、将文件的输出格式化为指定的宽度: 在这个技巧中,不仅包含了如何获取和文件相关的详细信息,如行数,字符等,而且还可以让文件按照指定的宽度输出。这种应用在输出帮助信息、License相关信息时还是比较有用的。 /> cat > test19.sh #!/bin/sh #1. 这里我们将缺省宽度设置为75,如果超过该宽度,将考虑折行显示,否则直接在一行中全部打印输出。这里只是为了演示方便,事实上,你完全可以将该值作为脚本或函数的参数传入,那样你将会得到更高的灵活性。 my_width=75 #2. for循环的读取列表来自于脚本的参数。 #3. 在获取lines和char... 阅读全文
posted @ 2011-12-30 00:03 OrangeAdmin 阅读(9481) 评论(0) 推荐(4) 编辑
摘要: 十三、格式化输出指定用户的当前运行进程: 在这个例子中,我们通过脚本参数的形式,将用户列表传递给该脚本,脚本在读取参数后,以树的形式将用户列表中用户的所属进程打印出来。 /> cat > test13.sh #!/bin/sh #1. 循环读取脚本参数,构造egrep可以识别的用户列表变量(基于grep的扩展正则表达式)。 #2. userlist变量尚未赋值,则直接使用第一个参数为它赋值。 #3. 如果已经赋值,且脚本参数中存在多个用户,这里需要在每个用户名之间加一个竖线,在egrep中,竖线是分割的元素之间是或的关系。 #4. shift命令向左移动一个脚本的位置参数,... 阅读全文
posted @ 2011-12-28 00:02 OrangeAdmin 阅读(6750) 评论(0) 推荐(2) 编辑
摘要: 七、非直接引用变量: 在Shell中提供了三种为标准(直接)变量赋值的方式: 1. 直接赋值。 2. 存储一个命令的输出。 3. 存储某类型计算的结果。 然而这三种方式都是给已知变量名的变量赋值,如name=Stephen。但是在有些情况下,变量名本身就是动态的,需要依照运行的结果来构造变量名,之后才是为该变量赋值。这种变量被成为动态变量,或非直接变量。 /> cat > test7.sh #!/bin/sh work_dir=`pwd` #1. 由于变量名中不能存在反斜杠,因此这里需要将其替换为下划线。 #2. work_dir和file_count两个变量的变量值用于构... 阅读全文
posted @ 2011-12-26 00:03 OrangeAdmin 阅读(22876) 评论(2) 推荐(4) 编辑
摘要: 该系列将重点介绍Linux Shell中的高级使用技巧,其主要面向有一定经验的Shell开发者、Linux系统管理员,以及Linux的爱好者。博客中的示例主要来源于网络和一些经典书籍,在经过本人的收集和整理之后,以系列博客的形式呈现给诸位。如果大家有更多更好的Shell脚本经典示例,且愿意在这里与我们一同分享的话,可以以邮件、博客回复等形式与我联系,我将会尽量保证该系列的持续更新。一、将输入信息转换为大写字符后再进行条件判断: 我们在读取用户的正常输入后,很有可能会将这些输入信息用于条件判断,那么在进行比较时,我们将不得不考虑这些信息的大小写匹配问题。 /> cat > test1 阅读全文
posted @ 2011-12-22 00:01 OrangeAdmin 阅读(19362) 评论(4) 推荐(8) 编辑
摘要: 在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化、我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题。因此这段时间总结的有关Linux Shell的系列博客就给予了我极大的帮助,然而在实际的使用中却发现,有的时候确实忘记了某个技术点或某个Shell命令的使用方式曾经在哪一篇博客中予以了说明,所以不得不多次点击多篇博客,直到找到想要那篇的为止,鉴于此,为了方便我们每个人的查阅,这里特别给出了前十二篇系列博客的目录以供大家参阅和查找。Linux Shell常用技巧(一) http://www.cnblogs.com/stephen-. 阅读全文
posted @ 2011-12-20 09:36 OrangeAdmin 阅读(27389) 评论(20) 推荐(14) 编辑
摘要: 二十三. Bash Shell编程: 1. 读取用户变量: read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY。下面的列表给出了read命令的常用方式:命令格式描述read answer从标准输入读取输入并赋值给变量answer。read first last从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量first中,并将该行其他的输入放在变量last中。read从标准输入读取一行并赋值给特定变量REPLY。read -a arrayn 阅读全文
posted @ 2011-12-19 00:05 OrangeAdmin 阅读(12574) 评论(1) 推荐(5) 编辑
摘要: 二十二. 交互式使用Bash Shell: 1. 用set命令设置bash的选项: 下面为set主要选项的列表及其表述:选项名开关缩写描述allexport-a打开此开关,所有变量都自动输出给子Shell。noclobber-C防止重定向时文件被覆盖。noglob-d在路径和文件名中,关闭通配符。 #打开该选项 /> set -o allexport #等同于set -a #关闭该选项 /> set +o allexport #等同于set +a #列出当前所有选项的当前值。 /> set -o allexport off braceexpand on emacs on er 阅读全文
posted @ 2011-12-15 00:05 OrangeAdmin 阅读(15432) 评论(0) 推荐(7) 编辑
摘要: 二十. 通过管道组合Shell命令获取系统运行数据: 1. 输出当前系统中占用内存最多的5条命令: #1) 通过ps命令列出当前主机正在运行的所有进程。 #2) 按照第五个字段基于数值的形式进行正常排序(由小到大)。 #3) 仅显示最后5条输出。 /> ps aux | sort -k 5n | tail -5 stephen 1861 0.2 2.0 96972 21596 ? S Nov11 2:24 nautilus stephen 1892 0.0 0.4 102108 4508 ? S<sl Nov11 0:00 /usr/bin/pulseaudio stephen 1 阅读全文
posted @ 2011-12-12 00:02 OrangeAdmin 阅读(6118) 评论(1) 推荐(2) 编辑