相对路径不适用于脚本

时间:2016-12-19 18:32:49

标签: relative-path xmlstarlet

这是我在stackoverflow的第一篇文章。 我目前正在使用带有popen的xmlstartlet来解析XML文件并将一些结果返回给我。 我想在项目的子文件夹中组织“可更改”文件(xml),所以我做了以下内容:

fp = popen("xmlstarlet sel -t -m '//Program/Data' -v . -n < /DSP_DATA/test.xml", "r");

问题是:我正在使用脚本将程序和一些配置加载到我的嵌入式系统(无头),当我直接通过ssh执行程序时,它运行良好,显示所有输出,但是当我通过脚本运行它,它显示:

sh: 1: cannot open /DSP_DATA/test.xml: No such file

下面是用于加载excecutable的脚本:

#This Script will upload the excecutable at "Debug" Folder to the remote host and excecute it at terminal by SSH.

set REMOTE_USER "pi"
set REMOTE_IP   "192.168.1.99"

#Upload Pin Configuration Script file
spawn scp -r remote.pinconf.sh $REMOTE_USER@$REMOTE_IP:/home/pi/SoftwareTestLocation
expect "password:"
send "raspberry\r"
expect "*\r"
expect "\r"

#Upload the Software
spawn scp -r ../Debug/ADAU145x.bin $REMOTE_USER@$REMOTE_IP:/home/pi/SoftwareTestLocation
expect "password:"
send "raspberry\r"
expect "*\r"
expect "\r"

#Excecute Pin Configuration Script - perform an CHMOD before
spawn ssh $REMOTE_USER@$REMOTE_IP
expect "password:"
send "raspberry\r"
expect "*\r"
expect "\r"

send -- "chmod +x ~/SoftwareTestLocation/remote.pinconf.sh\r"

send -- "sudo ./SoftwareTestLocation/remote.pinconf.sh\r"
expect "*\r"
expect "\r"

#Execute the Software
send_user "Remote Output\n---\n---\n---\n"
send -- "sudo ~/SoftwareTestLocation/ADAU145x.bin\r"
expect "*\r"
expect "END"

请给我任何支持以帮助发现相对路径工作的原因然后我直接登录并从文件夹执行软件,但是当我要求脚本执行时无效。

感谢。

1 个答案:

答案 0 :(得分:0)

在Linux /DSP_DATA/test.xml上意味着查看DSP_DATA文件夹下的根目录。

如果路径相对于可执行位置,则应使用:./DSP_DATA/test.xml