AIX 7.1 上的 stdout、stdin 和 stderr 表示

AIX 7.1 上的 stdout、stdin 和 stderr 表示

我一直在移植一堆脚本操作系统7.1。我之前没有使用过这个 Unix 系统的经验。

脚本在 和 下运行并/bin/sh依赖于和/dev/stdout。众所周知,这些文件是非标准化的,并且/dev/stdin/dev/stderr操作系统7.1似乎没有实施它们。

由于我发现/procVFS 存在,所以我尝试/dev/std{in|out|err}/proc/$$/fd/{0|1|2}.这失败了,因为描述符不是链接到pts具有权限的真实字符文件设备000( c---------)。

/bin/bash众所周知,它可以模拟许多设备,/dev包括/dev/std*.我关于切换和使用的有限实验/bin/bash/bin/sh成功/dev/std*的。然而,切换和测试所有脚本将/bin/bash非常耗时。


问题:

如何处理标准IO文件操作系统7.1在下面/bin/sh?正在雇用例如。/dev/tty道路?

// 要移植的脚本之一中的调用示例:

# param_protocol parameter apparently needs a file representation of the stdout
black_box_binary param1=$value1 param2=$value2 param_protocol=/dev/stdout

答案1

您可以通过读取<&0和写入>&1和来替换这些文件>&2,即。分别是 stdin、stdout 和 stderr。

答案2

这些文件可能/dev/std{in,out,err}只是符号链接吗/proc/$$/fd/{0,1,2}?看 ”标准错误和其他输出重定向”了解背景信息。但是,根据此处的前一个帖子,“> /dev/stdout” 的可移植性似乎依赖于外壳。

相关内容