在系统(debian 8)每个用户的 .profile 中,我调用一个启动 typescript 会话的脚本,将所有内容记录在一个文件中:
#!/bin/bash
script -f $HOME/.log/$(date +"%d-%b-%y_%H-%M-%S")_shell.log
问题是,当您输入“exit”时,您只会停止 typscrit 会话,而不是 ssh 连接,因此您必须再次输入 exit。我想在退出 typescript 时通过输入“exit”关闭 ssh 连接。我尝试了不同的方法:
在我的脚本的最后:
exit
or
logout
or
$(logout)
所有这些都会在退出打字稿后返回错误,例如使用logout
或$(logout)
:
/pathtoscript/log.sh: 9: /pathtoscript/log.sh: logout: not found
但它是一个系统命令,所以我只需要在脚本末尾在系统中执行它就可以了!
在.bashrc中:
function exit() { builtin exit && exit; }
这个函数没有附加任何内容,当我点击“退出”时,typescript 停止,但 ssh 会话没有停止。
答案1
你的东西没有按照你想要的方式工作,但正如你所说的那样:
.profile 由 shell 提供,就像您手动输入每个字符一样。如果您在 shell 中执行脚本或其他程序,您希望在脚本完成后立即返回提示符。这正是您所经历的。
您可以在 .profile 中输入 exit,它会像在交互式 shell 中输入一样退出。您的 .profile 可能如下所示:
# ... whatever comes before
script -f $HOME/.log/$(date +"%d-%b-%y_%H-%M-%S")_shell.log
exit
祝您的用户登录愉快!