【发布时间】:2020-07-14 21:11:39
【问题描述】:
出于上下文的考虑,我正在开发一个允许“远程”访问 NVidia Xavier 的系统。不幸的是,在其当前的外壳中,除非将整个单元拆开,否则显示端口完全被阻塞。提供 USB 端口,用于连接无线键盘和鼠标。我已经编写了一个 Gstreamer 管道,我可以通过 SSH 执行它,它将捕获显示并将其流式传输到另一台本地机器。
我遇到的问题是,由于设备是便携式的,它连接的网络和后续 IP 会不断变化,但我需要知道它才能通过 SSH 连接到设备。
我正在尝试编写一个(我认为很简单)bash 脚本,该脚本将在启动时通过 webhook 将时间戳和单元的 IP 发送到 Slack 通道,该 webhook 实际上是以下命令(IP 和 slack URL概括):
curl -X POST -H 'Content-type: application/json' --data '{"text":"Tue Jul 14 15:26:50 EDT 2020 IP: XX.X.X.XX"}' https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
每次运行脚本时,JSON 负载都会发生变化,具体取决于 hostname -I 和 date 的结果。
我尝试使用以下方法创建一个包含所需数据的数组:
command=( -X POST -H 'Content-type: application/json' --data \'{\"text\":\")
command+=("$(date)")
command+=("$(hostname -I)")
command+=(\"}\' https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX)
curl command
但收到错误curl: (6) Could not resolve host: command。
我几乎没有编写 bash 脚本的经验,而且很可能遗漏了一些对其他人来说非常明显的东西。但是,使用echo "${command[*]}" 确实会显示与工作命令匹配的输出。任何建议将不胜感激。
【问题讨论】:
标签: arrays bash curl slack-api