精选文章

推荐一款Chrome插件Infinity让新标签页焕然一新 Infinity new tab 是一款实用又简洁的chrome新标签页,可以完美替代默认的新标签页。从使用用chrome浏览器开始,就喜欢使用各种插件,屏蔽广告的,印象笔记,当然还有新标签页。由于大学专业的关系,和对于前端的热爱,决定开始自己写一个chrome扩展的新标签页,前期写了米鱼新标签页,v+新标签页。得到很多热心用户的反馈建议,慢慢的发现,这2个产品不能满足用户的一些需求,也没有达到用户心中所期待的一个完美产品。于是决定从新再做一个全新的,能够给人眼前一亮的感觉,也就是...

继续阅读

Android下使用TCPDUMP抓包Wireshark分析数据 如果想分析Android下某个APP的网络数据交互,需要在Android手机上抓包,最常用的抓包工具非tcpdump莫属,用tcpdump生成Wireshark识别的pcap文件,然后将pcap文件下载到电脑上,用电脑上的Wireshark加载pcap文件,通过Wireshark分析tcpdump抓取的数据。...

继续阅读

Mac下部署Android开发环境附加NDK 作为开发者,我们深有体会,不管是进行什么开发,为了部署开发环境,我们往往需要折腾很长时间、查阅很多资料才能完成,而且这次折腾完了,下次到了另一台新电脑上又得重新来过,整个部署过程记得还好,要是不记得又得重新开始,而且遇到Android这种GFW阻隔了开发资源下载链接的环境部署,又尤其浪费时间。所以这也是我写下这篇教程的初衷跟动力源泉,希望大家参考了这篇教程以后可以轻轻松松在Mac系统下将Android环境部署好。...

继续阅读

稍顯嚴肅的台中 坦白說,留在腦海中的台中影像並不多,來台灣之前在Booking上只訂到了台中的一家青旅,第一次住青旅有些不習慣,幹什麼都放不開。 同屋的一個男生是台灣人,不過一年中四分之三的時間在上海跟北京,這麼說來跟我還是比較有共同話題的。得之我準備花15天的時間環島,覺得太倉促了,他們大學時期花一個半月的時間也不見得能將台灣島給逛完。我只能無奈地表示,兩岸允許的簽證時間有限,自己的空閒時間更有限,只能用打卡式的旅行了,我深知正真地旅行應該慢下來,融入當地的環境,感受他們的風土人情,但第一次只能這樣作罷,以後換成民進黨上台,形勢會變成怎樣還不得而知,能否再過來還是個未知數。而我一向信奉的人生格言是秉燭夜遊,活在當下,所以,理解自己吧。...

继续阅读

為之留戀的新竹 來新竹之前本沒有對她有過高的期待,慢慢對她加分要從桃園火車站出發前往新竹開始。 在桃園火車站的候車月台上,有醒目的旅遊資料發放處,這上面的擺放的全是新竹的旅遊宣傳資料,關鍵的是資料做得非常簡潔易懂,而接下來一天的新竹之行就全部是依據這份寶典的指引來完成的。...

继续阅读

  • Prev
  • Next

标准输入stdin

文章分类 : Linux, 应用与编程, 教程

前面介绍了与标准输出跟标准错误输出相对应的数据重定向符“>”跟“2>”,那么与标准输入相对应的数据重定向符“<”又有什么功能呢?简单地说,就是将原本需要由键盘输入的数据,改由文件内容或字符串来替代。接下来,我们就使用 cat 命令来体验一下什么叫做键盘输入吧。    

[email protected]:~/linux/linux100$ ls
06
[email protected]:~/linux/linux100$ cat > test
This is a test to show how to input content to a file named
test by the command cat , in order to end this input, we
have to press the "Ctrl+c".
Now, I prepare to press the "Ctrl+c" to end this input.^C
[email protected]:~/linux/linux100$
[email protected]:~/linux/linux100$ ls
06 test
[email protected]:~/linux/linux100$ cat test
This is a test to show how to input content to a file named
test by the command cat , in order to end this input, we
have to press the "Ctrl+c".
[email protected]:~/linux/linux100$

 

这个实例中,我们将键盘输入的内容传递给 cat 命令,cat 命令再依靠重定向命令 > 将其存入 test 文件中。需要主要注意的是,上面实例中,最后一行由于没有换行便结束了输入,导致系统未将最后一行写入缓冲区,因此,test 文件中未能保存实际输入的最后一行,倘若想保存那一行,应该换行以后再按“Ctrl+c”来结束输入。那我们是否可以使用文件内容或字符串来取代键盘输入呢?可以的,见如下实例:

[email protected]:~/linux/linux100$ ls
06
[email protected]:~/linux/linux100$ cat > test < ~/.bashrc
[email protected]:~/linux/linux100$ ls
06 test
[email protected]:~/linux/linux100$ ls -l test ~/.bashrc
-rw-r--r-- 1 trevor trevor 3353 2011-03-09 18:30 /home/trevor/.bashrc
-rw-r--r-- 1 trevor trevor 3353 2012-02-23 23:36 test
[email protected]:~/linux/linux100$

 

我们发现,实例中两个文件的大小一样,其实内容也一模一样,几乎跟 cp 命令拷贝过来的一样。原理也不难理解,即将 ~/.bashrc 文件中的内容代替标准输入传递给 cat 命令,cat 命令再结合重定向命令 > 将其存入 test 文件中。

跟 < 不同的是,<< 只用来指定键盘输入的结束符,比方说,我要使用 cat 命令记录我在键盘输入的信息,且当我输入 end 时结束输入,那么我就可这样做:

[email protected]:~/linux/linux100$ ls
06
[email protected]:~/linux/linux100$ cat > test << "end"
> This is a test
> for the command
> cat, >, and <<
> The input will auto exist when I input the string "end" in a new line
> end
[email protected]:~/linux/linux100$ ls
06 test
[email protected]:~/linux/linux100$ cat test
This is a test
for the command
cat, >, and <<
The input will auto exist when I input the string "end" in a new line
[email protected]:~/linux/linux100$

 

由如上实例可知,利用 << 命令右侧的指定字符,我们可以结束本次输入过程,而不必按“Ctrl+c”来终止。

除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。

本文地址:https://www.cpplive.com/html/1691.html

这里因为你的留言而存在!!!

You must be logged in to post a comment.