Я подключаюсь к устройству через screen, для чего требуется ввести некоторые учетные данные (имя пользователя и пароль). Это становится раздражающим для каждой записи, поэтому я хотел бы использовать псевдоним команды, чтобы сделать это для меня:

Этого псевдонима в ~/.bash_aliases недостаточно:

alias devlogin="sudo screen /dev/ttyACM0 9600 && '\rmyusername' && \rmypassword"
1
tarabyte 31 Янв 2018 в 22:06

2 ответа

Это должно быть 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
1
thrig 1 Фев 2018 в 17:51

Использование stuff с правильным синтаксисом работает:

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

Обратите внимание, что, как правило, жестко закодировать пароль в виде простого текста — плохая практика, но, поскольку это среда разработки...

http://aperiodic.net/screen/quick_reference

0
tarabyte 2 Фев 2018 в 09:34