【发布时间】:2017-10-02 13:38:40
【问题描述】:
我有 2 个脚本。脚本 a.sh 将输出传递给脚本 b.sh,处理输出如下:
$ cat a.sh
#!/bin/bash
echo output | ./b.sh ### piping into STDIN of b.sh script
$
$ cat b.sh
#!/bin/bash
grep output ### reading from STDIN
$
$ ./a.sh
output
有什么方法可以在脚本 b.sh 中确定它从哪个脚本获取输入?我希望 b.sh 脚本找出它是 a.sh。我尝试将 /proc/$$/fd 的内容与 lsof 结合使用,但没有成功。
【问题讨论】:
-
你为什么想知道?你打算做什么不同的事情?这听起来像XY problem。
-
每个脚本应该是一个不同的进程,你应该能够从 b.sh 脚本的 ps 命令中找出它 :) 父进程应该是 a.sh 脚本
标签: bash pipe stdin file-descriptor