首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道要重定向到哪个设备或文件名?

如何知道要重定向到哪个设备或文件名?
EN

Unix & Linux用户
提问于 2014-02-09 04:41:05
回答 1查看 1.3K关注 0票数 2

从shell脚本(sh/bash)中,如何知道要重定向到哪个设备或文件名?

例如,我有一个名为script.sh的shell脚本。

我运行shell脚本并将STDOUT重定向到名为out.txt的文件,并将STDERR重定向到名为err.txt的文件。

所以,看起来是这样的:

代码语言:javascript
复制
$ ./script.sh > out.txt 2> err.txt

现在,在shell脚本中,我可以判断STDOUT (或STDERR)是否被重定向:

代码语言:javascript
复制
if [ -t 1 ]; then...
if [ ! -t 1 ]; then...

但是,一旦我知道STDOUT (或STDERR)正在被重定向,我如何才能知道它被重定向到哪里?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2014-02-09 06:32:08

您可以使用lsof

/usr/sbin/ -p $$ -a -d 1

上面只列出当前进程的文件描述符1:

代码语言:javascript
复制
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    5054 matt    1u   CHR  136,1      0t0    4 /dev/pts/1
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/114299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档