我想编写一个名为myscript的bash脚本,使得执行以下命令:
myscript > filename.txt
会返回输出被重定向到的文件名filename.txt。这个可行吗?
myscript > filename.txt
会返回输出被重定向到的文件名filename.txt。这个可行吗?
lsof
:outfile=$(lsof -p $$ | awk '/1w/{print $NF}')
echo $outfile
如果您正在运行Linux,请检查/proc/self/fd/1
链接到哪里。
例如,脚本可以执行以下操作:
#!/bin/bash
readlink /proc/self/fd/1
然后运行它:
$ ./myscript > filename.txt
$ cat filename.txt
/tmp/filename.txt
/proc/self
,因为它在子shell中会有所不同,但您仍然可以使用$$
:outputfile=$(readlink /proc/$$/fd/1)