shell重定向小结

1.命令输出 > 文件名

将命令的输出信息写入到指定文件

2. :> 文件名

把指定的文件断为0长度。如果文件不存在,则传进一个0长度的文件。

“:”是一个占位符,不输出任何内容。

3. > 文件名

把指定的文件断为0长度。如果文件不存在,则传进一个0长度的文件。

在某些shell写可能不工作

4.命令输出>>文件名

将命令的输出信息写入到指定文件。如果文件不存在则创建该文件;如果存在则追加在文件末尾。

5. 1> 文件名

将标准输出内容写入指定文件

6. 1>>文件名

将标准输出追加写入指定文件

7. 2> 文件名

将错误输出内容写入指定文件

8. 2>> 文件名

将错误输出追加写入指定文件

9. &>文件名

将标准输出和错误输出都写入指定文件

10. 2>&1

将错误输出与标准输出一样,发送到一个地方

i > &j 意思是重定向文件描述符i到j,指向i的所有输出都发送到j中去。

>&j这是默认写法,重定向文件描述符1(标准输出)到j

11. 0<文件名 或 <文件名

从文件中接受输入

12. 关闭文件描述符

0<&-或<&- 关闭标准输入

1>&-或>&- 关闭标准输出

n>&- 关闭输出文件描述符n

例1:

#!/bin/bash
exec 6<&0
exec < 2.txt
read a1
read a2
echo
echo $a1
echo "------------------"
echo $a2
exec 0<&6 6<&-
echo  "enter data"
read b1
echo "***************"
echo $b1
exit 0

运行结果如下:

 本例展现了修改标准输入并回复标准输入默认状态前后的不同。

先创建文件描述符6并将标准输入指向它。

然后将把2.txt作为标准输入文件。

使用read命令从标准输入读2次,然后输出。

把标准输入恢复到默认,再使用read命令,之后输入需要使用键盘输入字符后按enter键。

例2:

Logfile=logfile.txt
exec 6>&1
exec > $Logfile
echo -n "Logfile:"
date
echo "---------------------"
echo
df -h
exec 1>&6 6>&-
ls -l
exit 0

本例展现修改标准输出指向一个文件,然后改回默认的再执行命令输出的差异。

本例输出结果是,df -h命令内容保存在logfile.txt文件中。ls -l命令结果则输出到屏幕。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Shell中,重定向输出是一种将命令的输出从显示器改为输出到其他地方的方法。通过重定向输出,我们可以将命令的结果保存到文件中或者将输出传递给其他命令进行处理。 重定向输出有两种方式:输出重定向和错误重定向。 1. 输出重定向:输出重定向是将命令的输出保存到文件中。可以使用大于符号(>)来实现输出重定向。例如,将命令的输出保存到一个文件中可以使用以下命令: ``` command > file ``` 这将把命令的输出写入到指定的文件中,如果该文件不存在,则会创建该文件;如果文件存在,则会覆盖原有内容。 2. 错误重定向:错误重定向是将命令的错误输出保存到文件中。错误输出通常被称为标准错误(stderr)。可以使用大于号和和符号(2>)来实现错误重定向。例如,将错误输出保存到一个文件中可以使用以下命令: ``` command 2> file ``` 这将把命令的错误输出写入到指定的文件中,如果该文件不存在,则会创建该文件;如果文件存在,则会覆盖原有内容。 此外,还可以将输出和错误重定向到同一个文件中。可以使用大于号和和符号(&>)来实现将输出和错误输出都重定向到同一个文件中。例如: ``` command &> file ``` 这将把命令的输出和错误输出都写入到指定的文件中。 综上所述,重定向输出是一种将命令的输出从显示器改为输出到其他地方(如文件)的方法。通过输出重定向和错误重定向,我们可以灵活地处理命令的输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值