Я хочу открыть новый терминал с подключением minicom или ssh и запускать команды с другим пользователем в этом новом окне, используя сценарий оболочки. Я попытался внутри сценария оболочки написать следующие команды:
#! /usr/bin/tcsh -f
set Flag1 = 1
while ($Flag1)
if ($Flag1)then
`xterm -e /home/Script/First.sh`
set Flag1 = 0
endif
end
The /home/Script/First.sh
:
#! /usr/bin/tcsh -f
sudo minicom -D /dev/ttyUSB0
ifconfig eth0 10.120.140.3
ping -w20 10.120.140.1
Первая команда (minicom) сработала, но не продолжилась до остальные.
Чтобы открыть новое окно внутри сценария, вы можете использовать xterm
, как вы это сделали. Не рекомендуется использовать команду sudo внутри скрипта.
Итак, вместо запуска сценария First.sh
с sudo внутри запустите:
sudo /usr/bin/tcsh
и удалите sudo
из minicom
в файле ] First.sh
.
Кажется, это не так, но бывают ситуации, когда добавление параметра -hold
к команде xterm
не позволяет сценарию остановить выполнение.
1. Если вы можете использовать ssh , это довольно просто.
ssh -t user@ip 'ifconfig eth0 10.120.140.3; ping -w20 10.120.140.1'
2) Если вам нужно использовать minicom , вы должны сохранить свой скрипт в месте назначения, чтобы разрешить выполнение.
sudo vi First.txt
Вставьте только следующие строки:
ifconfig eth0 10.120.140.3
ping -w20 10.120.140.1
Были ситуации, когда minicon не принимал сценарии оболочки и добавлял !
прежде, чем решить проблему, как объяснено здесь
Затем откройте его 'console-gui' и отправьте по назначению:
sudo minicom -D /dev/ttyUSB0
send atz
send at
Вы должны получить ответ «ОК» в последних двух командах.
Затем запустите свой сценарий с помощью:
minicom -S First.txt