为了上下文起见,我正在开发一个允许;远程";访问NVidia Xavier。不幸的是,在目前的外壳中,除非将整个单元拆开,否则显示端口会完全堵塞。USB端口可用,用于连接无线键盘&老鼠我已经编写了一个Gstreamer管道,我可以通过SSH执行它,它将捕获显示并将其流式传输到另一台本地机器。
我正在运行的问题是,由于该单元是可移植的,它所连接的网络和随后的IP将不断变化,但我需要知道它才能SSH进入该单元。
我正在尝试编写一个(我认为很简单(bash脚本,该脚本将在启动时通过网络挂钩将时间戳和单元的IP发送到Slack通道,该网络挂钩实际上是以下命令(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
但是接收到错误CCD_ 9。
我几乎没有编写bash脚本的经验,可能会错过一些其他人都非常明显的东西。但是,使用echo "${command[*]}"
确实会显示与工作命令匹配的输出。如有任何建议,我们将不胜感激。
在bash中使用变量时,这是一个常见的错误-在设置变量时,不使用$
作为前缀,但在引用变量时,必须使用$
作为前缀才能进行扩展。因此,在您的情况下,您可能希望使用:curl $command
而不是curl command