当前位置: 首页 > news >正文

制作个人网站的软件旅游seo

制作个人网站的软件,旅游seo,云商城是合法的吗,临沂网站建设优化目录 0 前言1 readarray命令的格式和功能 1.1 命令格式1.2 命令功能1.3 注意事项2 命令应用实例 2.1 从标准输入读取数据时不指定数组名#xff0c;则数据会保存到MAPFILE数组中2.2 从标准输入读取数据并存储到指定的数组2.3 使用 -O 选项指定起始下标2.4 用-n指定有效行数…  目录  0 前言1  readarray命令的格式和功能 1.1 命令格式1.2 命令功能1.3 注意事项2 命令应用实例 2.1 从标准输入读取数据时不指定数组名则数据会保存到MAPFILE数组中2.2 从标准输入读取数据并存储到指定的数组2.3 使用 -O 选项指定起始下标2.4 用-n指定有效行数2.5 用-s来路过部分数据2.6 用-c和-C选项使用回调程序2.7 使用输出重定向和-t选项从磁盘文件中读取数据3 mapfile命令 0 前言 在交互式编程中数组元素的值有时是需要从程序外部输入的。比如由用户通过键盘输入的这时我们可以使用read -a命令来实现但需要重复输入的数据比较多时用read -a命令就不太方便效率也不够高。而且对于有些经常使用的固定数据我们可以把这些数据存放在一个文件里然后在使用这些数据的时候再从文件里把数据读出来。 为此Linux专门提供了 readarray命令。 1  readarray命令的格式和功能 我们 可以使用命令 help readarray 来查看 readarray 命令的帮助信息。 purleEndurer bash ~ $ help readarray readarray: readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]     Read lines from a file into an array variable.          A synonym for mapfile. purleEndurer bash ~ $ readarray --help bash: readarray: --: invalid option readarray: usage: readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array] purleEndurer bash ~ $  可惜help readarray命令 显示的帮助信息不多。我们 又尝试  readarray --help 命令但是readarray 命令不支持 --help 选项。 1.1 命令格式 readarray [-n 最大行数] [-O 起始下标] [-s 跳过行数] [-t] [u 文件描述符] [-C 回调程序] [-c 行数] [数组名] 选项说明备注-c 行数 每读取指定行数就调用一次-C 回调程序选项指定的回调程序 默认为每5000行调用一次回调程序 count-C 回调程序每读取-c 行数选项指定的行数就执行一次回调程序callback-n 最大行数 最多只拷贝指定的最大行数的数据到数组中 默认为0即拷贝所有行。 number-O 起始下标 指定从哪个下标开始存储数据默认为0。 对于二维数组来说指定的是起始行数。 origin-s 跳过行数忽略指定的跳过行数中的数据从跳过行数之后开始skip-t 移除尾随行分隔符默认是换行符 主要配合 -u选项使用 trim-u 文件描述符指定从文件描述符而非标准输入中读取数据use 1.2 命令功能 从标准输入或指定文件读取数据并存储到指定的数组中。 1.3 注意事项 在标准输入数据时按Enter键换行输完所有数据后要按CtrlD来结束输入CtrlD在屏幕上无显示。如果指定的数组变量原来已储存有数值在使用readarray命令时没有-O选项那么数组变量中原有的数据会先被清空然后再存储新读取的数据。如果不指定数组名则数据会保存到MAPFILE数组中。 2 命令应用实例 2.1 从标准输入读取数据时不指定数组名则数据会保存到MAPFILE数组中 例 2.1   purpleEndurer bash ~ $ readarray 1 1 1 2 2 2 purpleEndurer bash ~ $ echo $REPLY purpleEndurer bash ~ $ echo $MAPFILE 1 1 1 purpleEndurer bash ~ $ echo ${MAPFILE[*]} 1 1 1 2 2 2 purpleEndurer bash ~ $ echo ${MAPFILE[0]} 1 1 1 purpleEndurer bash ~ $ echo ${MAPFILE[1]} 2 2 2 purpleEndurer bash ~ $  我们输入了1 1 1和2 2 2两行数据后按CtrlD结束输入。 对于read命令如果不指定用来存储数据的变量名数据将保存在变量REPLY中。 但对于readarray命令如果不指定用来存储数据的数组变量名数据将保存到存储到MAPFILE数组中。 2.2 从标准输入读取数据并存储到指定的数组 例2.2 从标准输入读取两行数据并存储到指定的数组变量a purpleEndurer bash ~ $ readarray a 1 2 3 4 5 6 purpleEndurer bash ~ $ echo $a 1 2 3 purpleEndurer bash ~ $ echo ${a[*]} 1 2 3 4 5 6 purpleEndurer bash ~ $ echo ${a[0][*]} 1 2 3 purpleEndurer bash ~ $ echo ${a[1][*]} 4 5 6 purpleEndurer bash ~ $  我们输入了 1 2 3和4 5 6两行数据可以看到数据存储到数组变量a中。 系统默认从数组下标0开始存储所以命令执行的结果如下 a[0][0]1  a[0][1]2  a[0][2]3 a[1][0]4  a[1][1]5  a[1][2]6 2.3 使用 -O 选项指定起始下标 例 2.3.1 在例2.2的基础上我们继续从标准输入读取两行数据并存储到指定的数组a起始下标为1 purpleEndurer bash ~ $ readarray -O1 a a b c d e f purpleEndurer bash ~ $ echo ${a[*]} 1 2 3 a b c d e f purpleEndurer bash ~ $ echo ${a[1][*]} a b c purpleEndurer bash ~ $ echo ${a[2][*]} d e f purpleEndurer bash ~ $    我们输入了a b c和d e f 两行数据。由于我们指定从下标1开始 所以二维数组a的第一行数据没有变化 二维数组a的第二行数据变成 [a b c] [d e f]则变成了二维数组a的第三行的数据。 这时的二维数组a的值为 a[0][0]1  a[0][1]2  a[0][2]3 a[1][0]a  a[1][1]b  a[1][2]c a[2][0]d  a[2][1]e  a[2][2]f 可见对于二维数组来说-O指定的是起始行数。 那么对于一维数组呢-O指定的是什么呢 我们通过下面的例子来看一下。 例2.3.2 先定义一维数组a并初始化其值为1 2 3然后用readarray命令读取数据 a b c并指定从数组a的下标2开始存储。 purpleEndurer bash ~ $ a( 1 2 3) purpleEndurer bash ~ $ echo $a 1 purpleEndurer bash ~ $ echo ${a[*]} 1 2 3 purpleEndurer bash ~ $ readarray -O2 aa b cpurpleEndurer bash ~ $ echo ${a[*]} 1 2 a b c purpleEndurer bash ~ $  注意 在输入a b c后要按CtrlD两次这样可以让数组a保持为一维数组。 如果按下了Enter键数组a将变成二维数组。 可以看到对于一维数组来说-O选项指定的是元素的下标。 例2.3.3 不使用-O选项指定数组名中原有数据会先被清空 purpleEndurer bash ~ $ readarray a 1 2 3 4 purpleEndurer bash ~ $ echo ${a[*]} 1 2 3 4 purpleEndurer bash ~ $ readarray a a b purpleEndurer bash ~ $ echo ${a[*]} a b purpleEndurer bash ~ $  在第一次执行 readarray a 命令时我们输入的数据1、2、3、4被存储到数据变量a中。 在第二次执行 readarray a 命令时我们输入的数据a、b被存储到数据变量a中原来的数据1、2、3、4被清空了。 2.4 用-n指定有效行数 例 2.4 从标准输入读取2行数据储存到数组变量a。 purpleEndurer bash ~ $ echo $a purpleEndurer bash ~ $ readarray -n 2 a 1 1 1 2 2 2 purpleEndurer bash ~ $ echo ${a[*]} 1 1 1 2 2 2 purpleEndurer bash ~ $ echo ${a[1]} 2 2 2 purpleEndurer bash ~ $ echo ${a[0]} 1 1 1 purpleEndurer bash ~ $  可以看到我们输入两行数据后readarray命令就自动停止输入并将我们输入的数据存储到数组变量a中。 2.5 用-s来路过部分数据 例 2.5 跳过标准输入中的前2行数据将后续的数据存储到数组变量a中。 purpleEndurer bash ~ $ echo $a purpleEndurer bash ~ $ readarray -s 2 a 1 1 1 2 2 2 3 3 3 4 4 4  purpleEndurer bash ~ $ echo ${a[*]} 3 3 3 4 4 4 purpleEndurer bash ~ $ echo ${a[1]} 4 4 4 purpleEndurer bash ~ $ echo ${a[0]} 3 3 3 purpleEndurer bash ~ $  我们输入了1 1 1 、2 2 2、3 3 3、4 4 4四行数据由于-s 2 选项前两行数据1 1 1 、2 2 2被跳过数组变量a存储的数据是3 3 3、4 4 4即 a[0][0]3 a[0][1]3  a[0][2]3 a[1][0]4  a[1][1]4  a[1][2]4 2.6 用-c和-C选项使用回调程序 例 2.6 从标准输入读取数据每读入2行数据就调用echo命令显示字符串--- purpleEndurer bash ~ $ readarray -c 2 -C echo --- a b --- 1 b c d --- 3 d e f --- 5 f purpleEndurer bash ~ $ echo ${MAPFILE[*]} a b c d e f purpleEndurer bash ~ $  2.7 使用输出重定向和-t选项从磁盘文件中读取数据 例2.7.1 利用seq命令创建数据文件d.txt然后利用readarray和输入重定向将数据文件d.txt的内容存储到数组变量a purpleEndurer bash ~ $ seq 5 d.log purpleEndurer bash ~ $ cat d.log 1 2 3 4 5 purpleEndurer bash ~ $ readarray a d.log purpleEndurer bash ~ $ echo ${a[*]} 1 2 3 4 5 purpleEndurer bash ~ $ echo ${#a[*]} 5 purpleEndurer bash ~ $ echo ${#a[1]} 2 purpleEndurer bash ~ $ echo ${#a[1][1]} 2 purpleEndurer bash ~ $ echo ${#a[1][2]} 2 例2.7.2 在使用输入重定向和readarray -t 命令从例2.7.1创建的d.txt文件读取数据存储到数组变量a purpleEndurer bash ~ $ readarray -t a d.log purpleEndurer bash ~ $ echo ${a[*]} 1 2 3 4 5 purpleEndurer bash ~ $ echo ${#a[*]} 5 purpleEndurer bash ~ $ echo ${#a[1][1]} 1 purpleEndurer bash ~ $ echo ${#a[1][2]} 1 purpleEndurer bash ~ $ echo ${#a[1]} 1 purpleEndurer bash ~ $  从 echo ${a[*]}  和  echo ${#a[*]} 的命令执行结果来看readarray a d.log 和 readarray -t a d.log 执行的结果似乎是一样的。 但从echo ${#a[1]}、echo ${#a[1][1]}、echo ${#a[1][2]}命令的执行结果看readarray a d.log 和 readarray -t a d.log 执行的结果是不一样的。 这是因为readarray a d.log 没有过滤换行符。 3 mapfile命令 mapfile命令不仅在功能上和readarray命令相同而且在命令格式上也和readarray命令相同。 但是mapfile命令的帮助信息比readarray命令要详细得多。 purpleEndurer bash ~ $ help mapfile mapfile: mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]     Read lines from the standard input into an indexed array variable.          Read lines from the standard input into the indexed array variable ARRAY, or     from file descriptor FD if the -u option is supplied.  The variable MAPFILE     is the default ARRAY.          Options:       -n count  Copy at most COUNT lines.  If COUNT is 0, all lines are copied.       -O origin Begin assigning to ARRAY at index ORIGIN.  The default index is 0.       -s count  Discard the first COUNT lines read.       -t                Remove a trailing newline from each line read.       -u fd             Read lines from file descriptor FD instead of the standard input.       -C callback       Evaluate CALLBACK each time QUANTUM lines are read.       -c quantum        Specify the number of lines read between each call to CALLBACK.          Arguments:       ARRAY             Array variable name to use for file data.          If -C is supplied without -c, the default quantum is 5000.  When     CALLBACK is evaluated, it is supplied the index of the next array     element to be assigned and the line to be assigned to that element     as additional arguments.          If not supplied with an explicit origin, mapfile will clear ARRAY before     assigning to it.          Exit Status:     Returns success unless an invalid option is given or ARRAY is readonly or     not an indexed array. purpleEndurer bash ~ $
http://www.tj-hxxt.cn/news/132970.html

相关文章:

  • 河南建设部网站夜无忧论坛官网
  • 网站开发人员招聘要求深圳市官方网站
  • 论述网站建设整个流程做代理
  • 香水网络营销策划方案怎样做网站的优化 排名
  • 湛江制作网站公司东莞网站开发后缀
  • 企业网站策划书制作珠海cp网站建设
  • 滨海做网站公司广东网站设计哪家好
  • 长春电商网站建设哪家好龙岗成立区企业服务中心
  • 山东枣庄滕州网站建设wordpress的主要功能
  • 网站空间 更换公司网站后台如何上传视频
  • 课程设计报告 网站开发广州海珠区有什么大学
  • 晋城网站建设公司百度搜索指数是怎么计算的
  • 汕头网站优化公司看动漫是怎么做视频网站
  • 如何看那个网站是那个公司做的网站首页加浮动窗口
  • 优秀设计赏析网站网站静态和动态区别是什么
  • 服装网站功能网站怎么用ftp修改网页内容
  • 网站开发知识产权归属重庆网站建设技术外包
  • 电子政务门户网站建设代码公共资源交易中心官网
  • 站长之家是干嘛的推广链接点击器
  • 网站建设 用户管理一级造价工程师报名时间2023年
  • 用php做电子商务网站长沙网红小吃
  • 北京华诚传媒有限公司官方网站视频直播app下载
  • 广播电台网站建设板块北京建站的
  • 佰联轴承网做的网站涞水网站建设
  • 免费网站模版站内营销推广方式
  • 如何在720云网站做全景视频下载网站开发岗位职责
  • 大型大型网站建设方案免费国外服务器推荐
  • 做外贸营销网站销售咋样郑州电力高等专科学校学费多少
  • 专业网站设计企业做的网站怎么进入互联网
  • 小型网站建设多少钱淮安做网站的有多少钱