shell(3) 重定向.doc

本文详细介绍了Shell脚本中各种重定向方法,包括错误重定向、同时重定向标准输出与错误输出、通过文件描述符进行重定向等技巧,并提供了实用的例子说明如何在脚本中灵活运用这些重定向操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1) 重定向错误:

> >> 不能重定向 STDERR ,使用 2> 2>> 进行错误重定向

 

2) 同时重定向 STDOUT STDERR

xxx 1>a.txt 2>a.txt

xxx &>a.txt

xxx >& a.txt

 

3) 重定向到文件描述符:

使用 &

>&n

eg: >&2 重定向到 STDERR

 

4) 脚本中永久重定向:

exec 1>t.txt

exec 1>>t.txt         # 追加需要使用 >>

exec 0<t.txt

重定向符号两侧不要有空格

脚本可同时打开 9 个文件描述符,可自定义的为 3 8

exec 3>t.txt

echo "abc" >&3 # 输出到 t.txt

 

5) 描述符的存储与恢复:

exec 4>&1            # 存储 1 4

exec 1>a.txt           # 1

echo "bbbb"           # 将输出到 a.txt

exec 1>&4            # 恢复 1

echo "aaaa">&1     # 将输出到 STDOUT

 

类似地:

exec 4<&0            # 存储 0 4

exec 0<a.in            # 重定向输入

exec 0<&4            # 恢复 STDIN

 

6) 可读可写的文件描述符:

exec 3<>a.txt         #3 可同时用于输入输出

 

exec 3>&-             # 关闭 3

 

eg:

exec 4>&1

echo "bbbb">&4    # 将输出到 STDOUT

exec 4>&-

echo "aaaa">&4     # 将报错

 

7) 对整个函数的输出重定向

可以直接在函数调用后加重定向

 

8) 附录:

lsof, view all fd in the linux system

lsof -p PID, view all fd of a PID

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值