read

linux read 命令

你。 提交于 2020-04-07 02:31:13
/*--> */ /*--> */ 1 、基本读取 read 命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后, read 命令将数据放入一个标准变量中。下面是 read 命令 的最简单形式 :: #!/bin/bash echo -n "Enter your name:" // 参数 -n 的作用是不换行, echo 默认是换行 read name // 从键盘输入 echo "hello $name,welcome to my program" // 显示信息 exit 0 // 退出 shell 程序。 //******************************** 由于 read 命令提供了 -p 参数,允许在 read 命令行中直接指定一个提示。 所以上面的脚本可以简写成下面的脚本 :: #!/bin/bash read -p "Enter your name:" name echo "hello $name, welcome to my program" exit 0 在上面 read 后面的变量只有 name 一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给最后一个变量。如果太少输入只会赋给前几个变量,默认以空格为分隔符。 //***********

read指令使用方法

流过昼夜 提交于 2020-04-06 22:04:32
read命令用于从标准输入中读取输入单行,并将读取的单行根据IFS变量分裂成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name。第一个字段分配给第一个变量var_name1,第二个字段分配给第二个变量var_name2,依次到结束。如果指定的变量名少于字段数量,则多出的字段数量也同样分配给最后一个var_name,如果指定的变量命令多于字段数量,则多出的变量赋值为空。 如果没有指定任何var_name,则分割后的所有字段都存储在特定变量REPLY中 常用参数 -p:给出提示符。默认不支持"\n"换行-s:静默模式。输入的内容不会回显在屏幕上-t:给出超时时间,在达到超时时间时,read退出并返回错误-n:限制读取N个字符就自动结束读取,如果没有读满N个字符就按下回车或遇到换行符,则也会结束读取-N:严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束。其中换行符或回车算一个字符-a:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的index=0开始-p:给出提示符 简短示例 #!/bin/bashread -p "print a number: " numif [ $num -eq 5 ]; then echo "input right" && echo $numelse echo "input error"fiexit#执行

openEuler初步尝试

為{幸葍}努か 提交于 2020-04-06 20:33:06
openEuler( https://openeuler.org/zh/ )是什么呢?按照官方的说法:“openEuler是一个开源、免费的Linux发行版平台,将通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。” 按照尝新的步骤,查看文档、快速入门、下载安装、尝试使用、安装软件,来试一下这个东西。 1、 查看文档 主页在 openEuler( https://openeuler.org/zh/ )。 源码: https://gitee.com/openeuler 安装: https://openeuler.org/zh/docs/20.03_LTS/docs/Releasenotes/release_notes.html 一些帖子如下: 初试openEuler(二):windows下使用VirtualBox安装openEuler ,Author: traffic_millions · Published at March 27, 2020 · 1 min read,windows下使用VirtualBox安装openEuler虚拟机.... 初试openEuler(一):windows下使用qemu安装openEuler ,Author: traffic_millions · Published at March 27, 2020 · 1 min

串口通信之超时

ぃ、小莉子 提交于 2020-04-06 05:50:41
  超时分串口读超时和串口写超时,主要是读超时,即ReadTimeout与Read方法之间的超时。下面谈谈他们之间的意义和实现。   Read方法是阻塞的,它一直在读串口接收缓冲区中的数据,如果接收缓冲区有数据,Read方法则返回一个或多个字节数据;如果Read方法在等待ReadTimeout毫秒时间内,串口接收区一直没有任何数据,则Read方法将甩ExceptionTimeout异常。注意,Read(outBuf, offset, count)阻塞读取的不是非等到count个字节数据,而是当前接收缓冲区大于等于1小于等于count个字节数据,即只要有数据Read方法就立刻返回。   由于Read方法的阻塞性,所以我们必须防止(如串口物理断开) Read永远不返回,而导致程序卡死。方法有:   1. 设置ReadTimeout属性为合理值,其默认值为-1,即Read永不可能因为ReadTimeout而超时返回。   2. 先判断serialPort.BytesToRead大于0,再调用Read方法,则Read肯定会返回。 代码段一: int nStartTime = Environment.TickCount; while(true) { int nNowTime = Environment.TickCount;     if(nNowTime – nStartTime > 360

linux 下串口编程VTIME和VMIN的设置

自闭症网瘾萝莉.ら 提交于 2020-04-06 04:06:28
VTIME定义要求等待的时间量(取值不能大于cc_t)。 VMIN定义了要求等待的最小字节数。 options.c_cc[VTIME] = X;   //设置从获取到1个字节后开始计时的超时时间 options.c_cc[VMIN] = Y;   //设置要求等待的最小字节数 在原始模式下对read()函数的影响: 1、X=0,Y!=0。函数read()只有在读取了Y个字节的数据或者收到一个信号的时候才返回; 2、X!=0,Y=0。即使没有数据可以读取,read()函数等待X时间量后返回; 3、X!=0,Y!=0。第一个字节数据到时开始,最先满足收到Y个字节或达超时时间X任意一个条件,read()返回; 4、X=0,Y=0。即使读取不到任何数据,函数read也会立即返回。 示例: 通过串口连ID卡读卡器,要求读串口至少收6个字节数据立即返回,可以将串口的上述两个设置项设置如下: options.c_cc[VTIME]=0; options.c_cc[VMIN]=6; 来源: https://www.cnblogs.com/andtt/archive/2011/08/19/2145639.html

文件操作

我是研究僧i 提交于 2020-04-04 00:41:53
绝对路径:盘符开头并精确到目标文件,例如:f:\试用\实验.txt 相对路径:当前目录下的文件,例如:实验.txt 文件操作 ps:操作完成后一定要结束操作,使用s.close,避免持续占用内存空间。 open() open(“绝对路径或相对路径”,“模式”,“编码格式”) r ——只读:只是读取文件,不作任何更改。 s = open("f:\试用\实验.txt",mode="r",encoding="utf-8") q = s.read() print(q) s.close() w ——只写:若没有文件就创建文件,然后写入;若已有,那便清空内容重新写入。 s = open("f:\试用\实验.txt",mode="w",encoding="utf-8") s.write("你好世界") s.close() a ——追加:在已有的文件的内容后面追加新的内容。 s = open("f:\试用\实验.txt",mode="a",encoding="utf-8") s.write("你好世界") s.close() 操作非文字(图片,视频或其他)类型的文件时用 bytes rb ——用byte数据类型读取文件 s = open("f:\试用\实验.txt",mode="rb") content = s.read() print(content) #输出的内容按byte类型输出,b

Python当中read(),readline(),和readlines()的区别

左心房为你撑大大i 提交于 2020-03-30 13:34:43
当python进行文件的读取是,会遇到三个不同的函数,它们分别是read(),readline(),和readlines()。 第一个函数read() 一.read() 这个函数将会从头到尾读取文件当中所有的内容,最后返回的结果为字符串 二.readline() 这个函数仅会读取一行的内容,比较适合和文件读取当中的普通文件读取方法配合起来使用: f=open("123.txt","r") while True: file=f.readline() if file =="" break    print(file) f.close() 三.readlines() 这个函数和read函数有一点相似,也是读取文件当中所有的内容,但是最后返回的是列表而不是字符串。 来源: https://www.cnblogs.com/geeksongs/p/12598007.html

DataReader对象与数据获取

▼魔方 西西 提交于 2020-03-29 05:21:25
DataReader对象与数据获取 DataReader对象以“基于连接”的方式来访问数据库。也就是说,在访问数据库、执行SQL操作时,DataReader要求一直连在数据库上。这将会给数据库的连接负载带来一定的压力,但DataReader对象的工作方式将在很大程度上减轻这种压力。 1、DataReader对象的常用属性 DataReader对象提供了用顺序的、只读的方式读取用Command对象获得的数据结果集。由于DataReader只执行读操作,并且每次只在内存缓冲区里存储结果集中的一条数据,所以使用DataReader对象的效率比较高,如果要查询大量数据,同时不需要随机访问和修改数据,DataReader是优先的选择。 DataReader对象有以下常用属性。 FieldCount属性:该属性用来表示由DataReader得到的一行数据中的字段数。 HasRows属性:该属性用来表示DataReader是否包含数据。 IsClosed属性:该属性用来表示DataReader对象是否关闭。 2、DataReader对象的常用方法 同样,在SQL Server Data Provider里的DataReader对象叫SqlDataReader,而在OLE DB Data Provider里叫OleDbDataReader。

mysql常见面试题目

北城余情 提交于 2020-03-28 04:48:47
1, mysql的复制原理以及流程。 (1)先问基本原理流程,3个线程以及之间的关联。 (2)再问一致性,延时性,数据恢复。 (3)再问各种工作遇到的复制bug的解决方法 2,mysql中myisam与innodb的区别,至少5点。 (1) 问5点不同 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MVCC, 而MyISAM不支持 4>.InnoDB支持外键,而MyISAM不支持 5>.InnoDB不支持全文索引,而MyISAM支持。(X) (2) 问各种不同mysql版本的2者的改进 (3)2者的索引的实现方式 3,问mysql中varchar与char的区别以及varchar(50)中的30代表的涵义。 (1)varchar与char的区别 char是一种固定长度的类型,varchar则是一种可变长度的类型 (2)varchar(50)中50的涵义 最多存放50个字符 (3)int(20)中20的涵义 int(M)中的M indicates the maximum display width (最大显示宽度)for integer types. The maximum legal display width is 255. (4)为什么MySQL这样设计? 4

数据库的四大特性及事务的隔离级别

若如初见. 提交于 2020-03-27 18:27:37
  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)   原子性试纸事务包含所有的操作要么全部成功,要么全部失败回滚,事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对是数据库有任何影响。 ⑵ 一致性(Consistency)   一致性是指事务必须使数据库从一个一致性的状态转为为另一个一致性的状态,也就是说一个事务执行之前和执行之后都必须处于一致性的状态。   比如银行转账,加上A用户和B用户两者账户的钱一共有500,那么不管A用户和B用户之间如何转账,事务结束之后两个用户的钱加起来还是500,这就是事务的一致性。 ⑶ 隔离性(Isolation)   隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。   即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。   关于事务的隔离性数据库提供了多种隔离级别,稍后会介绍到。 ⑷ 持久性(Durability)   持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。