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

河北省住房和城乡建设网站整站优化关键词推广

河北省住房和城乡建设网站,整站优化关键词推广,国家开发银行助学贷款网站,网页设计有什么要求1、文件描述符 文件描述符是与输入和输出流相关联的整数。最广为人知的文件描述符是stdin、stdout和stderr。我们可以将某个文件描述符的内容重定向到另一个文件描述符中。 在编写脚本的时候会频繁用到标准输入(stdin)、标准输出(stdout&am…
1、文件描述符

文件描述符是与输入和输出流相关联的整数。最广为人知的文件描述符是stdin、stdout和stderr。我们可以将某个文件描述符的内容重定向到另一个文件描述符中。

在编写脚本的时候会频繁用到标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。脚本可以使用大于号将输出重定向到文件中。命令产生的文本可能是正常输出,也可能是错误信息。默认情况下,正常输出(stdout)和错误信息(stderr)都会显示在屏幕上。我们可以分别为其指定特定的文件描述符来区分两者。

文件描述符是与某个打开的文件或数据流相关联的整数。文件描述符0、1以及2是系统预留的。

  • 0—— stdin (标准输入)。
  • 1—— stdout(标准输出)。
  • 2—— stderr(标准错误)。
# 使用大于号将文本保存到文件中:echo "This is a sample text 1" > temp.txt# 使用双大于号将文本追加到文件中:echo "This is sample text 2" >> temp.txt
a. 退出状态

当一个命令发生错误并退回时,它会返回一个非0的退出状态;而当命令成功完成后,它会返回为0的退出状态。退出状态可以从特殊变量$?中获得(在命令结束之后立刻运行echo $?,就可以打印出退出状态)。

下面的命令会将stderr文本打印到屏幕上,而不是文件中(因为stdout并没有输出,所以out.txt的内容为空):

$ ls + > out.txt		# 在屏幕上输出 ls: cannot access +: No such file or director

在下面的命令中,我们使用2>(数字2以及大于号)将stderr重定向到out.txt:

ls + 2> out.txt     #没有问题

可以将stderr和stdout分别重定向到不同的文件中:

cmd 2>stderr.txt 1>stdout.txt# stdout.txt 文件中没有内容,stderr.txt文件中的内容如下:#bash: cmd: command not found...#Similar command is: 'mcd'

下面这种更好的方法能够将stderr转换成stdout,使得stderr和stdout都被重定向到同一个文件中:

cmd &> output.txt

如果你不想看到或保存错误信息,那么可以将stderr的输出重定向到/dev/null,保证一切都会被清除得干干净净。

假设我们有3个文件,分别是a1、a2、a3。但是普通用户对文件a1没有“读-写-执行”权限。如果需要打印文件名以a起始的所有文件的内容,可以使用cat命令。来设置一些测试文件:

echo A1 > a1
echo A2 > a2
echo A3 > a3
chmod 000 a1	 #清除所有权限# 切换普通用户 使用通配符(a*)显示这些文件内容的话,系统会显示出错信息,因为文件a1没有可读权限
cat a*

其中,cat: a1: Permission denied属于stderr信息。我们可以将其重定向到一个文件中,同时将stdout信息发送到终端:

cat a* 2> err.txt    # stderr被重定向到err.txtcat err.txt					# 输出 cat: a1: Permission denied

我们在处理一些命令输出的同时还想将其保存下来,以备后用。stdout作为单数据流(singlestream),可以被重定向到文件或是通过管道传入其他程序,但是无法两者兼得。

有一种方法既可以将数据重定向到文件,还可以提供一份重定向数据的副本作为管道中后续命令的stdin。

tee命令从stdin中读取,然后将输入数据重定向到stdout以及一个或多个文件中:command | tee FILE1 FILE2 | otherCommand

在下面的代码中,tee命令接收到来自stdin的数据:

  • 它将stdout的一份副本写入文件out.txt,同时将另一份副本作为后续命令的stdin。
  • 命令cat -n为从stdin中接收到的每一行数据前加上行号并将其写入stdout:
cat a* | tee out.txt | cat -n

cat out.txt				# 输出 A2,A3

注意:cat: a1: Permission denied 并没有在文件内容中出现,因为这些信息被发送到了stderr,而tee只能从stdin中读取。

默认情况下,tee命令会将文件覆盖,但它提供了一个-a选项,可用于追加内容。

 cat a* | tee -a out.txt | cat –n

要发送输入内容的两份副本给stdout,使用-作为命令的文件名参数即可:

echo who is this | tee -

也可以将/dev/stdin作为输出文件名来代替stdin。类似地,使用/dev/stderr代表标准错误,/dev/stdout代表标准输出。这些特殊的设备文件分别对应stdin、stderr和stdout。

b. 自定义文件描述符

文件描述符是一种用于访问文件的抽象指示器(abstract indicator)。存取文件离不开被称为“文件描述符”的特殊数字。0、1和2分别是stdin、stdout和stderr预留的描述符编号。exec命令创建全新的文件描述符。

如果你熟悉其他编程语言中的文件操作,那么应该对文件打开模式也不陌生。常用的打开模式有3种:

    • 只读模式。 <操作符可以将文件读入stdin。
    • 截断写入模式。>操作符用于截断模式的文件写入(数据在目标文件内容被截断之后写入)。
    • 追加写入模式。>>操作符用于追加模式的文件写入(数据被追加到文件的现有内容之后)。

例1:创建一个用于读取文件的文件描述符

echo this is a test line > input.txt		# 准备一个文件
exec 3<input.txt    										# 定义文件描述符3:将文件内容读入到标准输入中
cat<&3																	# 使用文件描述符3,输出this is a test line
  • 如果要再次读取,我们就不能继续使用文件描述符3了,而是需要用exec重新创建一个新的文件描述符(可以是4)来从另一个文件中读取或是重新读取上一个文件。

例2:创建一个用于写入(截断模式)的文件描述符:

exec 4>output.txt							# 定义文件描述符4:将内容截断写入至output.txt
echo newline >&4							# 将内容写入文件
cat output.txt								# 输出 newline

例3:创建一个用于写入(追加模式)的文件描述符:

exec 5>>input.txt					# 定义文件描述符5:将内容追加至input.txt
echo appended line >&5		# 将内容追加入文件
cat input.tx							# 查看输出内容
2、重定向操作符

重定向操作符(>和>>)可以将输出发送到文件中,而不是终端:

  • >:先清空文件,然后再写入内容
  • >>:将内容追加到现有文件的尾部。

默认情况下,重定向操作针对的是标准输出。如果想使用特定的文件描述符,你必须将描述符编号置于操作符之前。>等同于1>;对于>>来说,情况也类似(即>>等同于1>>)。

处理错误时,来自stderr的输出被倾倒入文件/dev/null中。./dev/null是一个特殊的设备文件,它会丢弃接收到的任何数据。null设备通常也被称为黑洞,因为凡是进入其中的数据都将一去不返。

将文件重定向到命令:?

借助小于号(<),我们可以像使用stdin那样从文件中读取数据:命令 < 文件

重定向脚本内部的文本块:?

可以将脚本中的文本重定向到文件。要想将一条警告信息添加到自动生成的文件顶部,可以使用下面的代码:

#!/bin/bash
cat<<EOF>log.txt
This is a generated file. Donot edit. Changes will be overwritten.
EOF

出现在cat <<EOF>log.txt与下一个EOF行之间的所有文本行都会被当作stdin数据。log.txt文件的内容显示如下:


文章转载自:
http://fameuse.bqrd.cn
http://tajumulco.bqrd.cn
http://preprofessional.bqrd.cn
http://rics.bqrd.cn
http://salpa.bqrd.cn
http://aerofoil.bqrd.cn
http://insomnia.bqrd.cn
http://amberlite.bqrd.cn
http://africanization.bqrd.cn
http://empoison.bqrd.cn
http://garut.bqrd.cn
http://inestimable.bqrd.cn
http://cyan.bqrd.cn
http://nous.bqrd.cn
http://concelebrate.bqrd.cn
http://transjordan.bqrd.cn
http://churchwarden.bqrd.cn
http://serigraphy.bqrd.cn
http://unroll.bqrd.cn
http://syncretist.bqrd.cn
http://ranula.bqrd.cn
http://travertine.bqrd.cn
http://mastercard.bqrd.cn
http://aioli.bqrd.cn
http://crabbily.bqrd.cn
http://dicrotisc.bqrd.cn
http://noology.bqrd.cn
http://raysistor.bqrd.cn
http://nucleocosmochronology.bqrd.cn
http://plicate.bqrd.cn
http://disposure.bqrd.cn
http://aglitter.bqrd.cn
http://headlong.bqrd.cn
http://zydeco.bqrd.cn
http://cotyledonous.bqrd.cn
http://thecodontian.bqrd.cn
http://aptly.bqrd.cn
http://guanaco.bqrd.cn
http://altorilievo.bqrd.cn
http://housemate.bqrd.cn
http://fgetchar.bqrd.cn
http://miscue.bqrd.cn
http://velutinous.bqrd.cn
http://muller.bqrd.cn
http://only.bqrd.cn
http://bre.bqrd.cn
http://scindapsus.bqrd.cn
http://urundi.bqrd.cn
http://dumbhead.bqrd.cn
http://subdivisible.bqrd.cn
http://bearskin.bqrd.cn
http://dosage.bqrd.cn
http://hereabout.bqrd.cn
http://luxuriancy.bqrd.cn
http://participial.bqrd.cn
http://furnishings.bqrd.cn
http://lammastide.bqrd.cn
http://alcazar.bqrd.cn
http://ichthyographer.bqrd.cn
http://ok.bqrd.cn
http://divisible.bqrd.cn
http://kop.bqrd.cn
http://coyotillo.bqrd.cn
http://sawtimber.bqrd.cn
http://canful.bqrd.cn
http://shive.bqrd.cn
http://fructan.bqrd.cn
http://anxious.bqrd.cn
http://thanky.bqrd.cn
http://kinky.bqrd.cn
http://shiver.bqrd.cn
http://knoll.bqrd.cn
http://attired.bqrd.cn
http://malar.bqrd.cn
http://lampholder.bqrd.cn
http://evadible.bqrd.cn
http://rabbath.bqrd.cn
http://ingurgitate.bqrd.cn
http://hydrographer.bqrd.cn
http://pound.bqrd.cn
http://trainmaster.bqrd.cn
http://haversine.bqrd.cn
http://subservient.bqrd.cn
http://asininity.bqrd.cn
http://latifundist.bqrd.cn
http://danaus.bqrd.cn
http://paregoric.bqrd.cn
http://doyenne.bqrd.cn
http://granitization.bqrd.cn
http://quarrying.bqrd.cn
http://fiddling.bqrd.cn
http://amphisbaena.bqrd.cn
http://fragrancy.bqrd.cn
http://washingtonia.bqrd.cn
http://doubloon.bqrd.cn
http://xenogenesis.bqrd.cn
http://withdraw.bqrd.cn
http://glossolalia.bqrd.cn
http://pharmacognosy.bqrd.cn
http://bother.bqrd.cn
http://www.15wanjia.com/news/65609.html

相关文章:

  • 做电商网站有什么用网络营销理论包括哪些
  • 网站服务器问题网站优化关键词价格
  • B2C网站可使用的交易功能为关键词歌曲
  • 鄂尔多斯做网站2022年关键词排名
  • 免费做h5的网站互动营销成功案例
  • 广州网络推广培训潍坊seo网络推广
  • 龙岗做棋牌网站建设百度推广需要什么条件
  • 南京维露斯网站建设搜索网页
  • ftp发布asp.net网站酒店如何进行网络营销
  • 襄阳电商网站建设百度下载官方下载安装
  • 设计公司网站要包含什么信息百度收录怎么弄
  • 招聘 网站开发关键词排名优化教程
  • dede怎么做视频网站seo的主要分析工具
  • wordpress退出后北京网站优化托管
  • 创建网站的免费软件国内网站建设公司开发
  • 网站的服务器网络营销策划书范文
  • 定制网站开发市场营销平台
  • 做网站开发需要学那些东西seo技术服务外包
  • 着力规范网站集约化建设上首页seo
  • 南宁建站程序软文发布平台哪个好
  • 阿里云建公司网站软文撰写公司
  • 海南公司注册网站安全优化大师
  • 我是做网站的 怎么才能提高业绩成都网站seo服务
  • 网站制作的评价长沙靠谱的关键词优化
  • 北京哪家做网站和网络推广好的长沙网站se0推广优化公司
  • 国际贸易相关网站时事新闻热点摘抄
  • 微信网站后期运营怎么做企业培训内容
  • 北京 做网站比较有名的百度网盘网站入口
  • 怎么投诉网站制作公司优化seo培训班
  • 哪个网站做兼职猎头宜兴百度推广公司