从ip.txt里 读取 IP.然后把IP地址赋值到一个数组里.

IP文件如下:
Address:  220.181.26.163
Address:  220.181.26.174
Address:  220.181.26.175
Address:  220.181.26.176
Address:  220.181.19.228
Address:  220.181.19.229
Address:  220.181.26.161
Address:  220.181.26.162

方法一:
for x in ` awk ‘{print $2}’ ip.txt `
{
echo $x
}
方法二:
ARRAY=($(awk ‘{print $2}’ ip.txt))
方法三:
n=0;while read a b;do array[$n]=$b;((n++));done<ip.txt

方法四:
n=1
while ((n<=$(cat ip.txt|wc -l)))
do
ipaddr[$n]=$(cat ip.txt|sed -n “${n}p”|awk ‘{print $2}’)
((n+=1))
done
n=`expr $n – 1`

从ip.txt里读取IP.然后把IP地址赋值到一个数组里.IP文件如下:Address:  220.181.26.163Address:  220.181.26.174Address:  220.181.26.175Address:  220.181.26.176Address:  220.181.19.228Address:  220.181.19.229
shell 编程 经常用到循环,常用的循环有for和while循环两种。while循环默认以行 读取文件 ,而for循环以空格 读取文件 切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别。 一、常用语法 1、for循环 for循环常用的语法结构有如下 几种 : for 变量 in seq字符串 for 变量 in `command` ” “ for 变量 in “$@”或“$*” for(( 赋值 ;条件;运算语句)) 2、while循环 while循环常用的语法结构有如下 几种 : while [ $i -lt num ] while true while read a b c; do comman
读取一个文件,把每 一行 赋值 给一个 数组 的变量,然后用for循环打印出来 代码如下:#!/bin/shi=1SUM=`sed -n ‘$=’ tmp.txt` #计算文件的总行数echo “$SUM”while read linedo    arr[$i]=”$line”    i=`expr $i + 1`done < tmp.txtecho “$i”i=1for i in `seq $SUM` ;do     echo “${arr[$i]}”done 附: shell 数组 补充知识 一、声明 数组 1)array[key]=value # array[0]=one,array[1]=two2)de
因为最近要处理一些 JSON 数据格式,所以在经过一番搜索后 最终找到了 jq 这个很棒的工具。jq 允许你直接在命令行下对 JSON 进行操作,包括分片、过滤、转换等等。 让我们通过几个例子来说明 jq 的功能: 一、输出格式化,漂亮的打印效果 如果我们用文本编辑器打开 JSON,有时候可能看起来会一团糟,但是通过 jq 的 .(点)过滤器就可以立马让 JSON 的格式规整起来。 1.用文本编辑器打开后的样子 2.用 jq 显示的结果 代码如下:% jq . soundtag.json 二、快速查询JSON数据 利用 jq 能够以 key 作为关键字来对 JSON 作出快速查询, 例如:
一个简单的 shell 脚本 确实最常用的,有时候我们需要从文本 一行 一行 读取并存到 数组 里。假如我有一个文件叫list.txt,如果你是在linux上创建的文件请忽略这个步骤。假如我在windows上编辑过那么格式就不是linux上的unix格式了,我需要先转换格式为unix防止出现意想不到的错误。具体 方法 请看下面 应该会显示文件类型 这个时候我们需要借助vim的命令,如下操作 按住shift+冒号进入命令模式输入以下命令 最后wq保存,再使用file命令查看文件属性就变成unix格式了。 没有后面那一段提示了,
Shell 脚本 专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的 shell 实现解决方案,教会读者如何使用现有调试器调试 shell 脚本 。全书分为3个部分: 脚本 技术基础、系统交互和高级技术、有用的 脚本 实例。主要内容包括如何使小到 型的系统管理任务自动化,分析系统数据并编辑配置文件,使用bash和ksh等编写IAnux、Unix和OSX应用程序的 脚本 文件等。 《 Shell 脚本 专家指南》面向 高级的 shell 程序员,以及需要解决日常问题的系统管理员,但假定读者能够读懂一般的 shell 代码。 《 Shell 脚本 专家指南》是我多年从事系统管理员一职所积累的非常有用的 脚本 和技术集合。尽管这些 脚本 是从一名系统管理员的角度进行编写的。但你几乎可以为任何你能想得到的目的而重用它们。《 Shell 脚本 专家指南》 的所有代码或者是非常有用,或者是非常地独特(甚至可能会有一点与众不同)。不过其 有些解决方案所用到的技术可能是你自己很难想出来的。 当我还在学习 shell 脚本 编程的时候,我会经常参考一些由别人编写出来的实例,以进一步地扩展自己的视野。而结果往往是我发现一些正在困扰着自己的问题,我的同事和朋友们却早已发明了又酷又聪明的解决方案。因此,我便萌生了写这《 Shell 脚本 专家指南》的念头,以易于理解的形式,介绍所有这些关键技术。 我写此书的目的。不是为了创作出一本shelI 脚本 编程的入门书。而是希望能够提供一些更具深度的内容。它的作用不仅仅是解释sheIl代码的内容,更在于讲述在大多数情况下如何以及为何使用某种特定的编程逻辑。这些 脚本 将帮助你大大提高编程技能。并提高你解决问题和选择解决方案的能力。《 Shell 脚本 专家指南》 的大部分 脚本 已经在以可靠性为关键因素的生产环境下,经历了多年的不断锤炼和改进。因此,《 Shell 脚本 专家指南》对于那些希望在案头放一本案例精选的读者来说,将会是最佳的参考资料。 这里囊括了所有你迫切希望解决、却又无处发问的 Shell 脚本 问题。 作者:(美国)彼得(Ron Peters) 译者:李晓群 付弘宇 彼得(Ron Peters),在过去的15年 大部分时间都在做系统管理员的工作。他曾是Intel公司的高级管理员,在那些日子里,他总是每周7天、每天24小时不停地工作,他也曾是一个专用于设计工作的大型计算机集群的首席管理员。他现在是Columbia运动服装公司的LinuxRJNIx系统管理员。他喜欢和家人在一起,喜欢修理他的道奇Challenger汽车,还喜欢玩美式壁球。 第1部分 基本 脚本 编程技术 第1章 shell 脚本 的错误检测 1.1 shell 跟踪选项 1.2 简单输出语句 1.3 根据调试层次控制输出 1.4 用函数简化错误检查 1.5 手动单步执行 第2章 标准函数库 2.1 库文件 2.2 一些有用的函数 2.3 使用库 第3章 日期和时间操作 3.1 用天数来计算日期 3.1.1 自从纪元以来的天数 3.1.2 以秒计算日期的其他 方法 3.2 评估当前日期和时间 第4章 比较和测试 比较的基本原理 第5章 接受命令行选项、开关和参数 第6章 测试变量和设置默认值 6.1 设置默认值 6.2 变量替换 6.2.1 :=句法 6.2.2 =句法 6.2.3 :-句法 6.2.4 -句法 6.2.5 :?句法 6.2.6 ?句法 6.2.7 :+句法 6.2.8 +句法 第7章 非直接引用变量 7.1 用非直接变量监控日志文件 7.2 主监控循环 第8章 shell 进程树 8.1 用 数组 实现进程树 8.2 用非直接变量实现进程树 8.3 用Bourne shell 实现进程树 第9章 数据重定向 9.1 避免错误 9.2 普通重定向 9.3 访问用户指定的文件句柄 9.4 从 shell 访问描述符 第10章 管道输入读 10.1 逐行选项1 10.2 逐行选项2 10.3 逐行选项3 10.4 逐行选项4 10.5 直接管道读 10.6 逐字处理输入 第2部分 系统交互与高级技术 第11章 shell 的数学 11.1 expr 11.2 bc 11.3 de 第12章 cron 12.1 crontab条目 12.2 环境问题 12.3 输出重定向 第13章 自链接 脚本 第14章 对并行进程的数量控制 14.1 用ksh实现并行进程 14.2 用bash实现并行进程 第15章 命令行编辑和历史命令 15.1 建立vi编辑环境 15.1.1 bash 15.1.2 ksh 15.2 命令和文件补全 第16章 从命令行编写 脚本 第17章 用expect实现用户输出自动化 17.1 为expect 脚本 定制参数的 shell 脚本 17.2 让telnet的expect 脚本 自动执行 第18章 用户输入超时 18.1 手动实现超时 18.2 使用stty实现超时 18.3 一般的超时功能 第19章 即时键盘响应 第20章 目录的复制 20.1 使用cp 20.2 使用tar 20.3 使用find 20.4 使用。rsync 第21章 X显示环境概述 21.1 display变量 21.2 使用ssh处理X流量 21.3 通过第三方系统的X应用 21.4 用户-Profile项 21.5 根-Profile项 21.6 弹出一个临时的根窗口 第22章 X导航窗口 22.1 导航窗口的作用 22.2 建立导航 22.3 浏览窗口 第23章 命令行电子邮件附件 23.1 uuencode 23.2 MIME编码 第24章 单行文本处理 24.1 显示特殊域 24.2 指定域分隔符 24.3 简单的模式匹配 24.4 几个值的匹配域 24.5 确定域的数目 24.6 确定最后一个域 24.7 确定倒数第二个域 24.8 给awk传送变量 24.9 在一定条件下使用给awk传送的变量 24.10 显示域的范围(主要 方法 ) 24.11 显示域的范围(备选 方法 ) 24.12 使用awk确定串的长度 24.13 使用expr确定串的长度 24.14 使用awk显示一个子串 24.15 使用expr显示一个子串 24.16 使用sed进行简单的查找和替换 24.17 忽略文件 的空行和注释行 24.18 使用sed进行双查找和替换 24.19 使用sed过滤行 24.20 使用egrep查找多个串 24.21 查找进程表的一个清理 方法 24.22 使用awk进行列求和计算 24.23 使用awk产生随机数字 24.24 从 shell 产生随机数字 24.25 使用sed显示基于字符的域 24.26 特殊字符转义 24.27 使用grep从一个模式匹配 返回末尾行 24.28 使用grep返回模式匹配之前的行 第25章 在适当的位置编辑文件 25.1 使用ed进行简单的查找和替换 25.2 使用ed查找和替换、分割 25.3 ed命令的例子 25.4 对一个文件 的特殊字符转义 第26章 平面文件 的变量 赋值 第27章 读取管道输入 第28章 使用cat的自由格式输出 第29章 自动交互处理 第3部分 有用的 脚本 实例 第30章 使用procmail自动处理邮件 30.1.procmailrc文件 30.2 使用示例 30.3 代码 第31章 进程管理监视器 第32章 管理文件的计数 32.1 文件计数监视器 32.2 测试文件数目的计算 方法 第33章 从inittab执行进程 第34章 自动RCS 第35章 带颜色的/proc报告 第36章 口令老化通知 36.1 脚本 初始化 36.2 开始处理 36.3 确定口令年龄 第37章 伪shadow文件 第38章 搭建Linux金系统 第39章 系统快照 39.1 快照 脚本 39.2 快照升级 39.3 创建最新快照 39.4 最后的想法 第40章 删除大文件和日志滚动 第41章 核心探测器 第42章 网络适配器故障转移 42.1 检查网络 42.2 转换接口 附录A 测试开关 附录B 特殊参数 附录C shell 脚本 编程的其他资源 C.1 手册 C.2 图书 C.2.1 脚本 编程图书 C.2.2 补充图书 C.3 shell 资源 C.4.网络资源
linux shell 在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。 下面是个人在使用时候,对它在 数组 方面一些操作进行的总结。 1. 数组 定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 一对括号表示是 数组 数组 元素用“空格”符号分割开。 2. 数组 读取与 赋值 得到长度: [chengmo@centos5 ~]$ echo ${ #a[@]} 用${# 数组 名[@或*]} 可以得到 数组 长度 [chengmo@centos5 ~]$ echo ${a[2]} result='week(now(),-1) 49'; var=`echo $result|awk '{print substr($result,16,3)}'`; echo $var; SYSFILE_NAME=`echo "$CONTROL_FILE" | awk -F"." '{print $1}' | awk -F"/" '{print $NF}...