如何在一个文件中将脚本传递到 gnome-terminal?

如何在一个文件中将脚本传递到 gnome-terminal?

我目前从事硬件开发工作,目前经常连接/断开/重新启动连接到串行端口的设备。 (通常只是 /dev/ttyUSB0)

我有一个基本脚本来监视串行端口,该脚本在gnome-terminal屏幕一角的小窗口中运行,因此我可以“一目了然”轻松查看设备是否已连接,或是否已完成重新启动等。窗口始终可见。出于监控目的。

脚本 ( monitorSerialPorts) 很基本但很实用:

while [ true ] 
do
  clear
  printf "\n Serial Devices: "
  ls /dev/ttyUSB* 2> /dev/null || (clear ; printf "\n  No Devices Detected")
  sleep 2
done

我从第二个脚本 ( monitorSerialPortsLauncher) 中调用此脚本,该脚本在登录时运行,内容只有一行,它在我需要的地方很好地创建了一个小窗口:

gnome-terminal --window-with-profile=RedonYellow --command=$HOME/scripts/monitorSerialPorts --geometry=26x3-20

问题: 有没有干净的如何将此功能合并到单个脚本中? (此外,欢迎对此流程或脚本的改进提出任何总体建议)

答案1

您可以将此脚本放入您的监视器SerialPortsLauncher中

#!/usr/bin/env bash
script=/tmp/monitorSerialPorts
cat << 'EOF' > $script
#!/usr/bin/env bash
sleep 10
while true
do
  clear
  printf "\n Serial Devices: "
  ls /dev/ttyUSB* 2> /dev/null || (clear ; printf "\n  No Devices Detected")
  sleep 2
done
EOF
chmod 755 $script
gnome-terminal --window-with-profile=RedonYellow --geometry=60x6-20 --command="$script"

相关内容