为什么登录命令不接受管道标准输入?

时间:2017-08-03 19:17:58

标签: linux shell unix command-line pipe

虽然

echo pwd | bash -i

作品

echo pwd | login -f root

不起作用。我期望login命令设置一些环境变量并启动一个交互式shell,但显然它有点特别。

login命令有什么用,所以上面的例子不起作用?是否有可以以这种方式使用的login命令的替代方法?

1 个答案:

答案 0 :(得分:0)

login命令在工作之前检查它是否连接到tty。您可以使用脚本命令模拟tty,如https://stackoverflow.com/a/1402389/3235192

所述
echo pwd | script -qc "login -f root" /dev/null

也适用于heredoc。

script -qc "login -f root" /dev/null << EOF
pwd
EOF