怎样用h5做网站/网络销售是什么

怎样用h5做网站,网络销售是什么,龙岩几个县,外贸电商网站开发价格文章目录 shell mapfile命令(readarray命令)介绍mapfile --help英文中文 简单使用教程创建一个测试文件使用mapfile命令读取文件打印数组内容 各选项详解1. -d delim:使用DELIM来终止行,而不是换行原理示例 2. -n count&#xff1…

文章目录

  • shell mapfile命令(readarray命令)介绍
  • `mapfile --help`
    • 英文
    • 中文
  • 简单使用教程
    • 创建一个测试文件
    • 使用mapfile命令读取文件
    • 打印数组内容
  • 各选项详解
    • 1. -d delim:使用DELIM来终止行,而不是换行
      • 原理
      • 示例
    • 2. -n count:最多复制COUNT行。如果COUNT为0,所有行都被复制
    • 3. -O origin:从索引ORIGIN开始分配给ARRAY。默认索引是0
      • 解释
      • 示例
    • 4. -s count:丢弃首先读取的COUNT行
    • 5. -t:从每一行读取中删除尾随的DELIM(默认为换行)
    • 6. -u fd:从文件描述符FD读取行,而不是标准输入
    • 7. -C callback:每读取QUANTUM行就评估一次CALLBACK
      • 解释
      • 示例
    • 8. -c quantum:指定每次调用CALLBACK之间读取的行数
  • 其他问题
    • 在管道操作中使用mapfile命令时,由于shell的子进程问题,mapfile无法改变父shell环境中的数组

shell mapfile命令(readarray命令)介绍

mapfilereadarray 是 Bash shell 中的一个内置命令,主要用于从标准输入或文件中读取行到数组变量中。

mapfilereadarray 是完全相同的命令。在 Bash shell 中,这两个命令是等效的,可以互换使用。

mapfile --help

英文

root@ky:/userdata/tmp# mapfile --help
mapfile: mapfile [-d delim] [-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, orfrom file descriptor FD if the -u option is supplied.  The variable MAPFILEis the default ARRAY.Options:-d delim  Use DELIM to terminate lines, instead of newline-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 DELIM from each line read (default newline)-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 toCALLBACKArguments:ARRAY     Array variable name to use for file dataIf -C is supplied without -c, the default quantum is 5000.  WhenCALLBACK is evaluated, it is supplied the index of the next arrayelement to be assigned and the line to be assigned to that elementas additional arguments.If not supplied with an explicit origin, mapfile will clear ARRAY beforeassigning to it.Exit Status:Returns success unless an invalid option is given or ARRAY is readonly ornot an indexed array.

中文

root@ubuntu:~# mapfile --help
mapfile: mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]从标准输入读取行到索引数组变量。从标准输入读取行到索引数组变量ARRAY,或者如果提供了-u选项,则从文件描述符FD读取。变量MAPFILE是默认的ARRAY。选项:-d delim  使用DELIM终止行,而不是换行-n count  最多复制COUNT行。如果COUNT为0,所有行都被复制-O origin 从索引ORIGIN开始分配给ARRAY。默认索引是0-s count  丢弃首先读取的COUNT行-t        从每一行读取中删除尾随的DELIM(默认为换行)-u fd     从文件描述符FD读取行,而不是标准输入-C callback       每读取QUANTUM行就评估一次CALLBACK-c quantum        指定每次调用CALLBACK之间读取的行数参数:ARRAY     用于存储文件数据的数组变量名如果没有提供-c,-C的默认量子为5000。当评估CALLBACK时,将提供下一个要分配的数组元素的索引和要分配给该元素的行作为额外的参数。如果没有提供显式的起始,mapfile会在分配给ARRAY之前清除它。退出状态:除非给出无效选项或ARRAY是只读的或者不是索引数组,否则返回成功。

简单使用教程

创建一个测试文件

首先,我们创建一个文本文件,其中包含一些我们想要处理的数据。打开终端并输入以下内容:

echo -e "line1\nline2\nline3\nline4\nline5" > test.txt

这将在你的当前目录下创建一个名为test.txt的文件,并填充了5行数据。

在这里插入图片描述

使用mapfile命令读取文件

然后,我们可以使用mapfile命令读取这个文件的内容并存储到一个数组中。在终端中输入:

mapfile -t my_array < test.txt

这里,-t选项用于删除每行的尾随换行符,my_array是我们的数组名称,< test.txt表示从test.txt文件中读取数据。

打印数组内容

现在,我们可以打印数组的内容来验证mapfile命令是否正常工作。在终端中输入:

printf "%s\n" "${my_array[@]}"
  1. printf:这是一个在shell脚本中常用的命令,用于格式化并打印数据。它的功能和C语言中的printf函数类似。

  2. "%s\n":这是printf命令的格式字符串。%s表示一个字符串,\n表示换行符。所以,这个格式字符串的意思是,对于每个参数,打印出该参数(视为字符串)并在其后添加一个换行符。

  3. "${my_array[@]}":这是bash中获取数组所有元素的语法。my_array是数组名,[@]表示获取数组中的所有元素。${}是变量替换符,它告诉bash将my_array[@]替换为my_array数组中的所有元素。

综合起来,printf "%s\n" "${my_array[@]}"这条命令的作用是,按照每行一个的方式打印出my_array数组中的所有元素。

你应该会看到test.txt文件中的每一行都被打印出来。

在这里插入图片描述

各选项详解

以下是mapfile命令中每个选项的使用示例:

1. -d delim:使用DELIM来终止行,而不是换行

原理

-d delim是mapfile命令的一个选项,其中delim是你自定义的终止符。默认情况下,mapfile会将每一行(由换行符’\n’分隔)读入数组。但是,如果你使用了-d选项,mapfile就会用你指定的delim作为行的结束符,而不是使用默认的换行符。

举个例子,假设你有以下的字符串:

a:b:c

默认情况下,mapfile会将这整个字符串视为一个行,因为没有遇到换行符’\n’。但是,如果你执行mapfile -d : my_array,然后输入上述字符串,mapfile就会将’a’, ‘b’, ‘c’视为三行,因为此时它把’:'作为行的结束符。

所以说,-d delim选项允许你改变mapfile识别行结束的方式。

示例

mapfile -d : -t my_array < <(echo -e "a:b:c\nd:e:f")
printf "%s\n" "${my_array[@]}"

这将打印出:

a
b
c
d
e
f

在这里插入图片描述

2. -n count:最多复制COUNT行。如果COUNT为0,所有行都被复制

mapfile -t -n 2 my_array < <(echo -e "line1\nline2\nline3")
printf "%s\n" "${my_array[@]}"

这将打印出:

line1
line2

在这里插入图片描述

3. -O origin:从索引ORIGIN开始分配给ARRAY。默认索引是0

解释

-O origin 是mapfile命令的一个选项,用于指定数组索引的起始值。

默认情况下,当你使用mapfile读取文件时,它会将文件的每一行存入到一个数组中,其中第一行对应数组的索引0,第二行对应索引1,依此类推。这就是默认索引是0的意思。

然而,如果你使用 -O origin 选项,你可以改变这个默认行为。origin是一个数字,代表你想要数组的起始索引值。例如,如果你执行 mapfile -O 3 -t my_array < test.txt,那么文件的第一行将会被存储在my_array[3],第二行存储在my_array[4],以此类推。

换句话说,-O origin 允许你控制数据被存储到数组的哪个位置开始。

示例

mapfile -t -O 2 my_array < <(echo -e "line1\nline2\nline3")
printf "%s\n" "${my_array[2]}" "${my_array[3]}" "${my_array[4]}"

这将打印出:

line1
line2
line3

在这里插入图片描述

4. -s count:丢弃首先读取的COUNT行

mapfile -t -s 1 my_array < <(echo -e "line1\nline2\nline3")
printf "%s\n" "${my_array[@]}"

这将打印出:

line2
line3

在这里插入图片描述

5. -t:从每一行读取中删除尾随的DELIM(默认为换行)

mapfile -t my_array < <(echo -e "line1\nline2\n")
printf "%s\n" "${my_array[@]}"

这将打印出:

line1
line2

如果不加-t参数,打印出的是:

line1line2

在这里插入图片描述

6. -u fd:从文件描述符FD读取行,而不是标准输入

exec 3< test.txt
mapfile -t -u 3 my_array
printf "%s\n" "${my_array[@]}"

exec 3< test.txt 是在Bash shell中创建并打开一个新的文件描述符(在这里是描述符3)并将其与特定文件(在这里是test.txt)关联起来的方法。

具体来说:

  • exec 是一个bash内建命令,通常用于启动新的进程。然而,在这个上下文中,它被用来打开、关闭或复制文件描述符。

  • 3 是你选择的文件描述符号码。在Linux和Unix系统中,文件描述符0、1和2分别代表标准输入、标准输出和标准错误。数字3及以上可以被程序用来创建额外的文件描述符。

  • < 是输入重定向符号。它将文件内容导向某个位置(在这个例子中,是文件描述符3)。

  • test.txt 是你想要读取的文件名。

因此,exec 3< test.txt的效果是:打开文件test.txt,并将它与文件描述符3关联。之后,你可以使用这个文件描述符来读取文件内容。例如,你可以使用命令 read -u 3 line 来从文件描述符3(也就是test.txt文件)读取一行。

这会从myfile.txt文件中读取行到my_array。

在这里插入图片描述

7. -C callback:每读取QUANTUM行就评估一次CALLBACK

解释

-C callback 是mapfile命令的一个选项,它允许你在读取指定数量的行之后执行一个特定的回调函数。

这里的callback是你定义的一个bash函数,而QUANTUM是一个数字,表示每读取多少行就执行一次这个函数。例如,如果你设置 -C myfunc -c 5,那么每当mapfile读取了5行数据后,就会执行myfunc这个函数。

这个功能在处理大文件时非常有用,因为你可以定期处理数据,而不必等到所有数据都被读取完毕。例如,你可以使用回调函数来显示进度信息,或者将数据分批写入到另一个文件中。

请注意,回调函数应该在使用mapfile之前定义,并且这个函数可以访问到两个变量:MAPFILE和MAPFILE_COUNT。MAPFILE是一个数组,包含已经被读取的行,而MAPFILE_COUNT表示已经读取的行数。

示例

当然,下面是一个使用-C callback选项的完整示例:

首先,我们创建一个名为process_lines的bash函数。这个函数将会在每读取到5行数据时被调用,并打印出已读取的行数和最后一行的内容。

process_lines() {local index=$1local line=$2echo "已读取到第$index行"echo "该行内容: $line"
}

然后,我们创建一个测试文件并使用mapfile命令读取它:

echo -e "line1\nline2\nline3\nline4\nline5\nline6\nline7\nline8\nline9\nline10" > test.txt
mapfile -t -C process_lines -c 5 my_array < test.txt

在这个命令中,-C process_lines指定了回调函数,而-c 5指定了每读取5行就执行一次回调函数。

如果你运行上述代码,你应该会看到以下的输出:

已读取到第4行
该行内容: line5
已读取到第9行
该行内容: line10

这就说明,在读取到第4行和第9行时,process_lines函数被成功地调用了。

在这里插入图片描述

8. -c quantum:指定每次调用CALLBACK之间读取的行数

mapfile -C callback -c 100 my_array < test.txt

这将在读取myfile.txt的每100行后执行callback函数。

其他问题

在管道操作中使用mapfile命令时,由于shell的子进程问题,mapfile无法改变父shell环境中的数组

如下两行命令:

echo -e "a:b:c\nd:e:f" | mapfile -d : -t my_array2
printf "%s\n" "${my_array2[@]}"

执行后显示为空:

在这里插入图片描述

原因是在管道操作中使用mapfile命令时,由于shell的子进程问题,mapfile无法改变父shell环境中的数组。

要解决这个问题,可以尝试避免使用管道,而是使用输入重定向(<)将echo的结果传给mapfile,如下所示:

mapfile -d : -t my_array < <(echo -e "a:b:c\nd:e:f")
printf "%s\n" "${my_array[@]}"

这里我们使用了一个叫做进程替代(process substitution)的特性,< <(commands)的形式会创建一个临时文件(或者在某些系统中是一个文件描述符),这个文件包含commands命令的输出,然后这个文件会被作为输入重定向到前面的命令中。

这样应该能够得到预期的结果,即数组my_array包含"a", “b”, “c”, “d”, “e”, "f"这六个元素。

在这里插入图片描述

参考文章:linux shell编程、bash编程、shell教程、bash教程、shell文档、bash文档、shell脚本、bash脚本【教程】第三章:特殊字符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614571.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Agisoft Metashape 基于影像的外部点云着色

Agisoft Metashape 基于影像的外部点云着色 文章目录 Agisoft Metashape 基于影像的外部点云着色前言一、添加照片二、对齐照片三、导入外部点云四、为点云着色五、导出彩色点云前言 本教程介绍了在Agisoft Metashape Professional中,将照片中的真实颜色应用于从不同源获取的…

使用推测解码 (Speculative Decoding) 使 Whisper 实现 2 倍的推理加速

Open AI 推出的 Whisper 是一个通用语音转录模型&#xff0c;在各种基准和音频条件下都取得了非常棒的结果。最新的 large-v3 模型登顶了 OpenASR 排行榜&#xff0c;被评为最佳的开源英语语音转录模型。该模型在 Common Voice 15 数据集的 58 种语言中也展现出了强大的多语言性…

【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】

前言 大家好吖&#xff0c;欢迎来到 YY 滴C复习系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

SQL-修改数据

目录 DML-修改数据 删除数据 总结 &#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f4dc;其他专栏&#xff1a;…

python爬虫实战(8)--获取虎pu热榜

1. 需要的类库 import requests from bs4 import BeautifulSoup import pandas as pd2. 请求地址 def fetch_data():url "https://bbs.xxx.com/" # Replace with the actual base URLresponse requests.get(url)if response.status_code 200:return response.c…

【python 的各种模块】(9) 在python使用PIL,即pillow模块

目录 1 导入PIL模块&#xff08;pillow&#xff09; 1.1 导入PIL模块 1.1.1 可用的导入形式 1.1.2 常用的导入形式 1.1.3 PIL下面的常用子模块 2 用 PIL读入&#xff0c;生成和显示图片 2.1 用 PIL.Image.open() 可以读入图片 2.2 用PIL.Image.new() 生成新图片 2.3 …

如何从多个文件夹里各提取相应数量的文件放一起到新文件夹中形成多文件夹组合

首先&#xff0c;需要用到的这个工具&#xff1a; 百度 密码&#xff1a;qwu2蓝奏云 密码&#xff1a;2r1z 说明一下情况 文件夹&#xff1a;1、2、3里面分别放置了各100张动物的图片&#xff0c;模拟实际情况的各种文件 操作&#xff1a;这里演示的是从3个文件夹里各取2张图…

MySQL 按日期流水号 条码 分布式流水号

有这样一个场景&#xff0c;有多台终端&#xff0c;要获取唯一的流水号&#xff0c;流水号格式是 日期0001形式&#xff0c;使用MySQL的存储过程全局锁实现这个需求。 以下是代码示例。 注&#xff1a;所有的终端连接到MySQL服务器获取流水号&#xff0c;如果获取到的是 “-1”…

软件测试|好用的pycharm插件推荐(二)—— JSON Parser

简介 PyCharm是一款强大的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;它提供了许多插件来增强开发体验。其中一个非常有用的插件是"JSON Parser"&#xff0c;它允许你在PyCharm中轻松解析和处理JSON数据。在本文中&#xff0c;我们将详细介绍如何安…

linux手动安装 vscode-server

适用场景 很多时候&#xff0c;我们需要在本机&#xff08;比如windows&#xff09;通过remote ssh访问远程服务器&#xff08;一般是ubuntu&#xff09;&#xff0c;但经常出现 vscode 一直连不上远程服务器的情况&#xff0c;看一下 log&#xff1a; 这个log表示远程服务器…

助力智能密集人群检测计数,基于YOLOv8全系列模型【n/s/m/l/x】开发构建通用场景下密集人群检测计数识别系统

在一些人流量比较大的场合&#xff0c;或者是一些特殊时刻、时段、节假日等特殊时期下&#xff0c;密切关注当前系统所承载的人流量是十分必要的&#xff0c;对于超出系统负荷容量的情况做到及时预警对于管理团队来说是保障人员安全的重要手段&#xff0c;本文的主要目的是想要…

php物联网平台云监控WEB设备iot管理后台源码带文字安装教程

物联网平台云监控WEB设备iot管理后台源码带文字安装教程 运行环境 服务器宝塔面板 PHP 5.6 Mysql 5.6 Linux Centos7以上 物联网监控平台&#xff0c;含有web平台、APP代码、硬件短代码&#xff0c;可使用Wifi、2G、4G硬件模块。 具有数据查看、集中显示、报警功能&#xff0c;…

FPGA图形化前仿真

引言 上文提到电路连接如下&#xff1a; 期望结果如下&#xff1a; 一.创建wrapper文件 1.创建HDL wrapper&#xff1b; 2.要是该文件不是顶层&#xff08;set as top&#xff09;&#xff0c;则需要把文件置于顶层 二.综合 1.综合的目的主要是排除语法的错误&#xff1b; 2.内…

重磅!GPT Store正式上线!

GPT Store来了。根据公告&#xff0c;用户可以在ChatGPT Plus、Team和Enterprise中访问、分享和销售使用OpenAI技术创建的AI模型。 而且&#xff0c;GPT Store确实有“推荐”机制&#xff1a;“特色GPTs”&#xff0c;商店会每周更新一批官方推荐的GPTs。另外OpenAI提供了“举报…

【sqlite3】sqlite3在linux下使用sqlitebrowser工具实现数据可视化

sqlite3在linux下使用sqlitebrowser工具实现数据可视化 1. ### install sqlitebrowser 1. ### install sqlitebrowser 安装指令 sudo apt-get install sqlitebrowser通过工具打开数据库 sqlitebrowser stereo.db打开效果

1.6计算机网络的性能指标

1.6计算机网络的性能指标 常用的计算机网络的性能指标有7个&#xff1a;速率、带宽、吞吐量、时延、往返时间、利用率、丢包率 1.6.1速率 计算机发送的信号是以二进制数字形式的。一个二进制数字就是一个比特(bit&#xff0c;binary digit)字节:Byte&#xff0c;1Byte8bit(1…

数据结构(三)堆和哈希表

目录 哈希表和堆什么是哈希表 &#xff1f;什么是堆 &#xff1f;什么是图 &#xff1f;案例一&#xff1a;使用python实现最小堆案例二 &#xff1a; 如何用Python通过哈希表的方式完成商品库存管理闯关题 &#xff08;包含案例三&#xff1a;python实现哈希表&#xff09; 本…

强化学习求解TSP(八):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法&#xff0c;用于解决基于奖励的决策问题。它是一种无模型的学习方法&#xff0c;通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策&#xff0c;该函数表示在给定状态下采取某个动作所获…

MySQL修炼手册4:分组与聚合:GROUP BY与HAVING的应用

写在开头 MySQL数据库的强大功能为我们提供了丰富的数据处理工具&#xff0c;其中GROUP BY与HAVING的应用使得数据的分组与聚合变得更加灵活和高效。在本篇博客中&#xff0c;我们将深入研究GROUP BY与HAVING的基础知识&#xff0c;并通过实际案例&#xff0c;展示它们在数据分…

vue的mvvm模式

1.mvvm优点&#xff1a; 低耦合&#xff1a;视图&#xff08;View&#xff09;可以独立于Model变化和修改&#xff0c;一个ViewModel可以绑定到不同的View上&#xff0c;当View变化的时候Model可以不变&#xff0c;当Model变化的时候&#xff0c;View也可以不变。 可复用&…