linux command Line and shell script bible(笔记九)

这是暑假回来看linux命令行与shell脚本编程大全的一些笔记,并不是全部的,只是结合本人觉得需要的一些记录,在整理发表博文时也当作一种回顾!欢迎交流指正!!


14.2 在脚本中重定向输出

14.2.1    临时重定向
*在重定向到文件描述符时,必须在文件描述符数字前加以个and符号(&)
如:echo "This is an error message" >&2
*如果在运行脚本时重定向了STDERR或者其他,脚本中重定向到STDERR或者其他的文本都会被重定向
14.2.2 永久重定向
*用exec命令告诉shell在脚本执行期间重定向某个特定文件描述符:
如:exec 1>outfile       #exec命令会启动一个新shell并将STDOUT文件描述符重定向到文件,脚本发给STDOUT的所有输出会被重定向到文件
14.3 在脚本中重定向输入
exec 0< testfile         #将STDIN重定向到文件后,当read命令试图从STD读入数据时,它会到文件去取数据,而不是键盘
14.4.1 创建输出文件描述符
*可以用exec命令来给输出分配文件描述符
exec 3>testout           #将数字3定义为输出描述符,且重定向到testout文件,此后对3描述符的重定向操作与标准文件描述符一样
注意:理解以下代码作用用于恢复重定向
exec 3>&1
exec 1>testout
.
.
exec 1>&3

14.4.3 创建输入文件描述符
方法:先将STDIN文件描述符保存到另一个文件描述符,然后在读取完文件之后再将STDIN恢复到原来位置
exec 6<&0
exec 0<inputfile
.
.
exec 0<&6

14.4.3i 创建读写文件描述符
*由于向同一个文件进行读写数据操作,shell会维护一个内部指针,指明现在在文件中什么位置,任何读写都会从文件指针上次保存的位置开始
exec 3<> testfile
14.4.5 关闭文件描述符
*要关闭文件描述符,将它重定向到特殊符号&-即可
exec 3>&-
注意:在关闭文件描述符时,如果后面在脚本中打开了同一个输出文件,shell会用一个新文件来替换已有文件。
exec 3>testfile
....>&3       #文件有数据写入
exec 3>&-
exec 3>testfile      #打开新文件,原来的文件被替换
....>&3       
14.5 列出打开的文件描述符 lsof
-p:允许指定进程ID
-d:允许指定要显示的文件描述符数字
-a:用来对其他两个选项的结果执行布尔AND运算
eg.$ lsof -a -p $$ -d 0,1,2
14.6阻止命令输出
*把输出消息重定向到/dev/null
*把/dev/null重定向到某个文件,用来快速清除文件中数据

14.7创建临时文件,给mktemp指定一个文件名模板即可,模板后面是6个大写X,然后创建的临时文件会用六个字符码替换6个X
mktemp test.XXXXXX
-t:这选项是强制在/tmp/目录中创建临时文件
-d:告诉命令创建一个临时目录而不是文件

14.8 记录消息
tee filename         #tee会将从STDIN过来的数据重定向,一个目的地是STDOUT,另一个目的地是指定的文件
-a :表示将数据追加到文件中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值