Я хочу выполнить
expect -c "
spawn ssh user@10.0.0.0
expect \"assword:\"
send \"pass\r\"
interact "
в новом терминале, дважды щелкнув по сценарию .sh.
Я попытался
#!/bin/bash
commands () {
expect -c "
spawn ssh root@10.0.0.0
expect \"assword:\"
send \"pass\r\"
interact "
$SHELL # keep the terminal open after the previous commands are executed
}
export -f commands
gnome-terminal -e "bash -c 'commands'"
без удачи. Есть идеи?
можно использовать терминал гнома с - опция запрещать-фабрики, которая делает:
"Не регистрируются в сервере имен активации и не снова используют уже рабочий процесс терминала GNOME",
Он пропустит переменную среды 'команд'.
терминал гнома обычно работает в режиме сервера. Первый запуск запускает процесс, следующие запуски отправляют сообщения в основной процесс для открытия нового окна. Так, огибающий Вар установлены только на первом запуске.
можно использовать отдельный файл сценария и передать его имя файла для избиения. Или сделайте его умным: обнаружьте в этом сценарии его фактическое имя файла и передайте его для избиения, таким образом, он назовет этот тот же сценарий в терминале гнома (но передаст параметр для взятия различного пути выполнения кода).
можно наполнить все в переменную, но удостовериться, что она расширяется перед вызовом до терминала гнома.