首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文掌握EOF在Shell脚本中的妙用

前言:  EOF是End Of File的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,意思是把内容当作标准输入传给程序,Linux中按Ctrl-d就代表EOF。  ...在Shell中我们通常将EOF与 的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。...回顾一下的用法,当shell看到的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。...通过cat配合重定向能够生成文件并追加操作,在它之前先回顾几个特殊符号: < :输入重定向 > :输出重定向 >> :输出重定向,进行追加,不会覆盖之前内容 的一对分隔号的中间内容...例: [root@localhost ~]# cat EOF //运行后会出现输入提示符">" > Hello > wolrd > EOF 输入结束后,在终端显示以下内容: Hello wolrd

5.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    字符串在JVM的哪里

    关于字符串在JVM的哪里 字符串对象在JVM中可能有两个存放的位置:字符串常量池或堆内存。...使用常量字符串初始化的字符串对象,它的值存放在字符串常量池中; 使用字符串构造方法创建的字符串对象,它的值存放在堆内存中; 另外String提供了一个API, java.lang.String.intern...(),这个API可以手动将一个字符串对象的值转移到字符串常量池中 JDK1.7之后虽然字符串常量池也转换到了堆中,但是其实字符串常量池是在堆中独立开辟的空间,我们创建一个普通字符串和一个字符串对象结构类似于下图...代码验证 这里其实我们可以看出一些intern()的特性了. intern源码分析 我们来看intern方法的实现,intern方法的底层是一个native方法,在Hotspot JVM里字符串常量池它的逻辑在注释里写得很清楚...总结 在Java应用恰当得使用String.intern()方法有助于节省内存空间,但是在使用的时候,也需要注意,因为StringTable的大小是固定的,如果常量池中的字符串过多,会影响程序运行效率。

    4.3K30

    在郑州,你该买哪里的房子?

    背景 某次和领导吃饭,无意中提到了房子的话题,说了几句自己的心得经验(虽然没有再次实操的资本),却给领导留下了深深的印象(领导,你不是又要在郑州置业了吧)。 ?...前段时间一个老朋友也联系我咨询郑州房子的事情(难道就因为我在郑州吗?)。那朋友一连串问了我好几个为题,听说郑州现在房子降价了?现在该不该买?买这个XXX楼盘合适吗? ? 可是,我们是老朋友,你懂的。...本着负责任的态度,今天我们来一块分析下郑州的房价,数据爬取自某房中介网站(我只是数据的搬运工,不对数据真实性负责哈)。 ?...买房最关心的应该就是房屋的价格,下面我们来看下每个区域的价格分布。 首先对原始数据进行处理,去掉单位,方便后续计算。...单价1万5左右的房子最多。曾经有人问我,一个城市的房价多高最幸福,我想的是工资是房价的1.2倍,然后没有贷款…… ?

    9.1K40

    2023-03-29:如何高效计算三条线路选择方案?小A的旅行线路规划问题

    2023-03-29:第一行有一个正整数n(3的路线数量 第二行有n个正整数,第i个代表第i条路线的起始日期 第三行有n个正整数,第i个代表第i条路线的终止日期...输入保证起始日期小于终止日期 日期最小是1,最大不超过1000000000 小A打算选三个路线进行旅游,比如 A -> B -> C 要求A的结束日期要小于B的开始日期,B的结束日期要小于C的开始日期。...输出一个非负整数,代表线路的方案数量。...3.使用三个线段树分别统计当前路径长度为1、2、3时的方案数。具体地,在遍历每个路线时,先查询出所有结束日期小于该路线起始日期的路线组合数量,然后将该路线加入到线段树中,并更新线段树的值。...4.最终,三个线段树的总和就是符合条件的路线组合数量。 # 对比 方法一的时间复杂度为O(n^3)。由于需要递归计算每个状态的方案数,因此当路线数量较多时,时间复杂度会非常高。

    13330

    2023-03-29:如何高效计算三条线路选择方案?小A的旅行线路规划问题

    2023-03-29:第一行有一个正整数n(3的路线数量 第二行有n个正整数,第i个代表第i条路线的起始日期 第三行有n个正整数,第i个代表第i条路线的终止日期 输入保证起始日期小于终止日期...日期最小是1,最大不超过1000000000 小A打算选三个路线进行旅游,比如 A -> B -> C 要求A的结束日期要小于B的开始日期,B的结束日期要小于C的开始日期。...输出一个非负整数,代表线路的方案数量。...3.使用三个线段树分别统计当前路径长度为1、2、3时的方案数。具体地,在遍历每个路线时,先查询出所有结束日期小于该路线起始日期的路线组合数量,然后将该路线加入到线段树中,并更新线段树的值。...4.最终,三个线段树的总和就是符合条件的路线组合数量。 对比 方法一的时间复杂度为O(n^3)。由于需要递归计算每个状态的方案数,因此当路线数量较多时,时间复杂度会非常高。

    28500

    C语言指针的值在哪里?在SRAM

    我的电脑里面有三种cache,可以看到L1最小,L3最快 大小 量相差很大 这是我自己电脑的实测,最慢的反而是内存,算完是58.49G/s,L1居然到了2K G这个速度,L3是内存的大概3倍多。...RAM掉电数据会丢失,RW-data是非0初始化的数据,已初始化的数据需要被存储在掉电不会丢失的FLASH中,上电后会从FLASH搬移到RAM中。...SDRAM 大概是这样的 LPDDR4是新一代面向移动设备的低功耗内存,它属于SDRAM家族的存储器产品。...虽然SRAM速度更快,读写时间也更短,但SRAM的成本较高,所以在存储器容量较小的情况下,通常使用SRAM,而对于大容量存储器,则使用SDRAM。...放入该部分的值在启动时不会被初始化,在软件重启后也会保持值不变。

    12110

    计算机的国产灵魂到底差在了哪里

    国产操作系统在Linux分类,占比不足5%,市占率有待提升。从当前国产化率来看,国内操作系统市场空间巨大。...如果让小程序来弥补应用生态缺陷其实小程序在PC端运行并非空穴来风,微信小程序2019年已经支持在Windows、macOS系统打开小程序。...目前微信小程序在PC电脑端运行的场景非常多,特别是涉及一些协同工作的用户,在电脑上操作小程序的频次也非常高。...还有,我们往往会在视频号等直播平台看到有趣的内容,但一般情况下用户需要花费大量时间去观看,在手机上去看很难坚持,有时候碰到需要切换应用,更是难以忍受不中途关闭退出,但在 PC 上这就不是问题,用户会有更好的沉浸感...在大力发展数字经济,各行各业数字化转型如火如荼的背景下,新基建、东数西算、超算智算等政策的先后推出,使国产操作系统迎来了难得的发展机遇,我们有理由相信,国产操作系统的前景亦是一片光明。

    3.1K30

    哪里注册域名便宜?便宜的域名使用会有问题吗?

    很多人购买任何物品都喜欢讨价还价,喜欢追求便宜,但其实任何商品都有其内在的价值,过分的便宜可能并不是一件值得高兴的事情,像很多网友询问域名哪里有便宜的卖,那么下面就来了解一下哪里注册域名便宜?...便宜的域名使用会有问题吗? 哪里注册域名便宜 想要购买域名通常需要向域名供应商来进行购买,一般品牌域名供应商的价格都比较一致,想要在那里购买便宜的域名基本上没有可能。...目前网络上价格便宜的域名,一般都是一些代理域名商在销售,那里的域名一年的使用费用只有正常价格的数分之一,能够为用户带来非常便宜的域名使用。 便宜域名能使用吗 哪里注册域名便宜?...对于价格便宜的域名,其实都是有深层次的原因的。很多人都会发现便宜地域名的访问速度通常容易出现卡顿,而且在很多情况下这种域名都没有很好的保障。...因此对于企业用户而言,还是应当选择有实力的域名供应商以正常价格购买域名,但对于一些没有商业追求的用户来说,也可以购买代理域名商的便宜域名使用。 很多想要建设网站的用户都经常会提问哪里注册域名便宜?

    25K10

    测评 | 小度智能音箱的性价比究竟「高」在了哪里?

    AI「小当家」的贴心指数 小度智能音箱号称百度 AI「小当家」。而对于用户来说,一个「小当家」的存在不仅仅是通过对话来解决生活中遇到的问题,更重要的是足够「贴心」。...另外,在测试的过程中,我们向小度提问了许多关于世界杯的问题,也恰逢世界杯开幕在即,在一次唤醒小度时,它的回应是:「午安,世界杯来啦,高不高兴,激不激动?」这着实让人惊喜。...除了声音,「儿童模式」的下交互内容与交流方式也都是专门为孩子设计的。下图为「儿童模式」与普通模式下,小度智能音箱对同一问题的回复比对。 ?...以下为近场交互情境下的测试结果: ? 不难看出,在近场交互情境下,小度智能音箱可以准确识别出问题,并能够在大多数情况下给出正确答案。尽管也出现过「超纲」情况,但小度仍努力给出机动性的回应。...例如,在被要求播放 Tara 的歌曲时,小度就表示「正在学习这首歌」,并推荐了一首「同样好听的歌曲」。 之后,我们在远场情境下向小度智能音箱提出了同样的 10 个问题。

    2.5K00

    云的安全问题(第2部分):从哪里开始

    在本节中,我们会给出另一些安全建议,这些建议可以使您的安全水平提升一个层次。...由于CM(配置管理)的本质是在基础设施上执行任意代码,因此需要加强系统敏感数据的保护。...如果您已经按照本系列第1节的建议采取了此措施,恭喜您,又解决了一个问题。...跟踪和监视配置您的系统的代码,对于确保用户不在主机上手动安装软件包引发未知的安全问题来说非常重要。 如果您有时间进行配置和管理,则可以选择开源项目,如OSSEC和auditd。...8.安全警报 您需要一个系统在检测到异常现象时发出异常警报。无论是一次异常的凌晨两点来自俄罗斯IP地址的登录,还是在发布的产品中不知不觉出现的漏洞,您不仅需要知道,而且需要快速知道。

    1.4K100

    无线路由器是在什么背景下产生的?国内外有哪些著名的厂商?

    大家好,我是瑞哥,今天跟大家聊一聊无线路由器的话题。 在以前,无线技术没有普及的时候,一般我们依赖网线比较大,即使是笔记本电脑,也会插着网线,其实笔记本电脑诞生的时候,无线技术也已经诞生了。...[1622684573426-image.png] 在现在,越来越多的厂商开始生产无线路由器,国外的厂商主要有: 1、Apple Apple,苹果公司,创立于1976年4月1日,是美国一家高科技公司,创始人乔布斯...总部在美国伊利诺伊州绍姆堡。我们知道的摩托罗拉基本是它的手机,2014年中国联想收购了其手机业务。 其实它的无线路由器产品目前也在慢慢的影响着世界,估计实打实的铁粉会去选择摩托罗拉的无线路由器吧。...在无线路由器业务板块也是非常的强悍,PCMagzine发布过网友最受欢迎的无线路由器,华硕位居第一位!...腾达路由器和TP-Link路由器一样,在早期的时候,普通家庭用的非常的多。

    1.9K00

    JWT在CTF中的问题

    标准中注册的声明 (建议但不强制使用) : iss: jwt签发者 sub: jwt所面向的用户 aud: 接收jwt的一方 exp: jwt的过期时间,这个过期时间必须要大于签发时间 nbf: 定义在什么时间之前...虎符CTF的WEB(easy_login) 该题开始是一个登录框,经过随意注册一个用户后,再进行登录后提示没有权限登录,这一点我们直接就可以猜测出是要求admin用户登录,然后我们在注册处利用BP抓包放包后可以看到有一串...并且在登录时也会发现该JWT字符会作为身份验证部分与用户名、密码一起通过POST方法表单传递到后端进行验证。...所以可以想到JWT的伪造,同时结合题目的描述与node有关,学习到node 的JWT库的空加密缺陷问题。对普通用户的JWT进行base64解码如下 ? ?...解题: 首先注册登陆采用jwt认证,但是jwt的实现很奇怪,逻辑大概是,注册的时候会给每个用户生成一个单独的secret_token作为jwt的密钥,通过后端的一个全局列表来存储,登录的时候通过用户传过来的

    5.9K20

    PostgreSQL 为什么Archive 缓慢或不归档,问题的原因在哪里

    到底为什么没有归档,或归档缓慢 1 没有备份 我们通过备份后 可以发现,在设置归档正确的情况下,备份后,会触发归档的操作....并且在 archive_status 可以获取到目前归档的状态,到了那里. 2 设置保留日志 在postgresql 中 设置了 wal_keep_segments 可以帮助保留一定的wal log...POSTGRESQL 系统建立在一个比较频繁对数据库进行DML操作的系统,并且并发量也大, 磁盘系统I/O 存在性能的问题,此时你的关注点,就需要看看 调用ARCHIVE COMMAND 的时候,是否会让系统处于无响应的情况...,导致拷贝的速度很慢, 影响生产系统 2 归档的命令通过网络方式传输,实际当中,这样的做法也是有的,但不建议,因为如果网络出现问题,则需要重试,或者因为网络的带宽的问题导致归档缓慢....实际上POSTGRESQL 归档这个问题,在小系统上不是问题,而在大型的应用的系统中,应该被重视到底ARCHIVE 这个问题该怎么应对和设计.

    1.9K20

    Toast在子线程调用的问题

    Toast我们平时经常使用,但是你是否了解在子线程中要如何使用Toast呢?....show(); 但是如果在子线程调用是不会有toast弹出的 Toast的正确姿势 如果在子线程调用那么让Toast能正常显示的方式是在它之前和之后调用Looper.prepare()和Looper.loop...,而传给他的参数里的 mTn又是什么呢, 其实它是Toast的一个内部类,它有两个方法,show()和hide()是用来给NotificationManagerService回调的,可以看看它的代码 private...因此没有调用prepare()和启动消息队列的话,在子线程调用Toast是显示不出来的。...总结 Toast在主线程的显示只需要调用show()就可以,如果想在子线程调用,则需要在子线程启动Looper,这样才能有消息队列来承载Handler收发消息。否则子线程的Toast是不能显示的

    79530

    谈谈你在开发遇到的问题

    问这个问题的面试官就是脑子有病。谁遇到问题能天天记得,时间久了,谁不忘记?奶奶滴腿,我还得专门写篇文章记一下。焯 问题1:Mybatis预编译限制 我们有个数据同步场景,从数据库A同步到数据库B中。...一开始测试的时候,用Batch模式插入,数据量很小,没发现同步有啥问题。后来数据量大了之后,就报错了。一条sql使用#{} 预编译次数不得超过2100个。...也就是这个集合最大长度就是 (2100 / sql字段个数) – 1 问题2:PageHelper页数修正问题 Mybatis文档有这句话:你希望用户输入的页数不在合法范围(第一页到最后一页之外)时能够正确的响应到正确的结果页面...项目中使用的是reasonable = true。我在同步数据的时候,利用页数+1,查询新的集合,当页数超标后,集合长度肯定就变成0了。判定是以集合长度为准的。于是就出现死循环的场景。...于是就改为通过页数是否大于最大页数作为do while循环的条件。 特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

    24630

    localtime在多线程中的问题

    碰到一个奇怪的问题,通过localtime生成本地日期时间打日志,结果日志会出现非北京时间,好奇去查了一个,结果发现此函数是非线程安全函数,原来代码如下: int32_t utc2datetime(uint32...= (uint16_t)p->tm_sec; out_pTime->unWeek = (uint16_t)p->tm_wday; return 0; } localtime,用来获取系统时间,原型在time.h...头文件中,定义如下: struct tm *localtime(const time_t *timep); 在实际应用中,用了2个线程一个统计,一个日志使用此函数,结果就会出现读出的SVC_TIME有的是北京时间...,有的是-8小时的时间,需要使用线程安全函数,localtime_r和localtime_s,localtime_r是linux下线程安全函数,localtime_s是windows下线程安全函数,定义分别如下...struct tm *_tm ); errno_t localtime_s(struct tm* _tm,const time_t *time); 注意:localtime_r和localtime_s的参数是相反的

    50140
    领券