Relative path do not work by script

379 views Asked by At

This is my firt post at stackoverflow. I'm currently using xmlstartlet, with popen, to parse a XML file and return some results to me. I want to organize the "changeable" files (xml's) inside a subfolder of my project, so I did the following:

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

The issue is: I'm using a script to load the program and some configurations to my embedded system (headless), and when I excecute the program directly by ssh, it runs great, showing all the outputs, but when I run it by the script, it shows:

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

Below, there is the script used to load the 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"

Please, give me any sugestions to help Discover the reason why the relative path works then I log in directly and execute the software from the folder, but won't work when I ask for execution by the script.

Thanks.

1

There are 1 answers

0
LPs On

On linux /DSP_DATA/test.xml means to look at the root directory under DSP_DATA folder.

If the path is relative to the executable position you should use: ./DSP_DATA/test.xml