我想使用 minicom 或 ssh 连接打开一个新终端,并在该新窗口中使用 shell 脚本以其他用户身份运行命令。我尝试在 shell 脚本中写入以下命令:
#! /usr/bin/tcsh -f
set Flag1 = 1
while ($Flag1)
if ($Flag1)then
`xterm -e /home/Script/First.sh`
set Flag1 = 0
endif
end
这/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)起作用了,但是它无法继续执行其他命令。
答案1
要在脚本中打开新窗口,您可以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 不接受 shell 脚本,添加一个!
before 可以解决问题,如解释的那样这里
然后,打开它的“console-gui”并发送到目的地:
sudo minicom -D /dev/ttyUSB0
send atz
send at
您应该在最后两个命令中收到答案“OK”。
然后使用以下命令运行脚本:
minicom -S First.txt