Hi but it appears that if my strings have spaces in it, it won't work properly. My entire script is here:
#!/bin/bash
echo $#; echo $@
MoveToTarget() {
#This takes to 2 arguments: source and target
echo ""$1" "$2""
cp -rf "$1"/* "$2"
rm -r "$1"
}
WaitForProcessToEnd() {
#This takes 1 argument. The PID to wait for
#Unlike the AutoIt version, this sleeps 1 second
while [ $(kill -0 "$1") ]; do
sleep 1
done
}
RunApplication() {
#This takes 1 application, the path to the thing to execute
open "$1"
}
#our main code block
pid="$1"
SourcePath="$2"
DestPath="$3"
ToExecute="$4"
WaitForProcessToEnd $pid
MoveToTarget "$SourcePath" "$DestPath"
RunApplication "$ToExecute"
exit
Note that I have tried the variables like $DestPath with and without quotes around them, with no luck. This code gets run with a Python script, and when the arguments are passed, quotes are around them. I appreciate any help!
Edit: (Python script)
bootstrapper_command = r'"%s" "%s" "%s" "%s" "%s"' % (bootstrapper_path, os.getpid(), extracted_path, self.app_path, self.postexecute)
shell = True
subprocess.Popen(bootstrapper_command, shell=shell)
#!/bin/bash -xthen every variable with it's value is echoed to stdout as the script executes.echo $#; echo $@at the top of the script? That might shed a little light.