如何从shell命令重定向部分标准输出

时间:2017-08-14 17:00:48

标签: bash shell sh

我有以下shell命令来生成ssh密钥并将公钥添加到授权密钥。但是,我想将此命令的所有输出重定向到一个文件,而我必须得到这些命令生成的提示输入输出。

ssh-keygen -f /home/$cu/.ssh/${ssh_key}_rsa -t rsa -N ''
# Add Public Key to authorized keys
ssh-copy-id -i /home/$cu/.ssh/${ssh_key}_rsa.pub $Linux_User@$Linux_Machine

请你提供你的建议。

1 个答案:

答案 0 :(得分:1)

您正在寻找的答案可能是一个名为tee的命令,它会将一个流拆分为2.虽然您可以使用它变得非常复杂,但最常见的用途是将某些内容写入文件,同时也让它流仍然像你正在寻找的那样正常打印出来。

ssh-keygen -f /home/$cu/.ssh/${ssh_key}_rsa -t rsa -N '' | tee -a $log_file

ssh-copy-id -i /home/$cu/.ssh/${ssh_key}_rsa.pub $Linux_User@$Linux_Machine | tee -a $log_file