如何使用命令启动屏幕会话?

如何使用命令启动屏幕会话?

我正在通过它连接到设备,screen要求我输入一些凭据(用户名和密码)。在每个条目上都这样做很烦人,所以我想为我添加一个命令别名:

这个别名~/.bash_aliases是不够的:

alias devlogin="sudo screen /dev/ttyACM0 9600 && '\rmyusername' && \rmypassword"

答案1

一定是这样吗screen?另一种选择是使用expect或 类似的方法打开设备,发出任何必要的命令,然后将事情交给用户。这样做的优点是可以将密码保留在命令行之外(在整个系统中通常可以看到密码):

#!/usr/bin/env expect

# open up serial and configure
set fh [open /dev/ttyACM0 {RDWR NOCTTY NONBLOCK}]
fconfigure $fh -mode 9600,n,8,1

# link above up with expect
spawn -noecho -open $fh
send -- "\rmyuser"
send -- "\rHunter2"

# over to the user now
interact

答案2

使用stuff正确的语法似乎有效:

alias evdlogin="sudo screen /dev/ttyACM0 9600 -X stuff $'\rmyusername\rmypassword'"

请注意,以纯文本形式对密码进行硬编码通常是不好的做法,但由于这是一个开发环境......

http://aperiodic.net/screen/quick_reference

相关内容