如何从bash脚本中引用重定向文件?

时间:2012-08-24 16:29:44

标签: bash redirect

我想写一个bash脚本myscript,发出这个命令:

myscript> FILENAME.TXT

将返回其输出重定向到的文件名,filename.txt。这可能吗?

2 个答案:

答案 0 :(得分:1)

使用lsof

outfile=$(lsof -p $$ | awk '/1w/{print $NF}')
echo $outfile

答案 1 :(得分:1)

如果您在Linux上运行,请检查/proc/self/fd/1链接的位置。

例如,脚本可以执行以下操作:

#!/bin/bash
readlink /proc/self/fd/1

然后运行它:

$ ./myscript > filename.txt
$ cat filename.txt
/tmp/filename.txt

请注意,如果要将输出文件的值保存到变量或其他内容,则不能使用/proc/self,因为它在子shell中会有所不同,但您仍然可以使用{{1} }:

$$