我正在通过它连接到设备,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'"
请注意,以纯文本形式对密码进行硬编码通常是不好的做法,但由于这是一个开发环境......