Need some help and pointers I am trying to do something that is likely a bad idea but I am not sure the alternate method. I am creating an xml file called input.apProgram I have a script and it fills it out just as I need. I am grabbing files names from a directory and filling out an array with it as there may be a bunch of files in the future. I have to strip the file path and extension and use it again to fill out 4 other sections in the script. I have tried using an array inside an array and I either get nothing or too much due to the array in an array. Here is the script.
#!/bin/bash
set -x
# this will grab files from the designated folder and create an xml
# which later runs in the background
ls "C:/opti/o0904/cnhbensonol1/parts2do/"*.* > tmp #folder with cad files
newpath=$(cygpath -w "C:/opti/O0904/cnhbensonol1/parts2do/"*.*) # needs paths with \
rm tmp #it works
echo "$newpath" > tmp
file_in="tmp"
file_out="input.apProgram"
#arr=("Mild Steel" "AutoPOL") #material and machine, this could change
# static text formatted
header='<?xml version="1.0" encoding="utf-8"?>
<Program version="1.2">
<Input>
<Name>OPTI</Name>
</Input>
<Parts>'
echo "$header" > $file_out
while IFS=$',' read -r -a arry; #this array fills in the cad file for the directory.
do
echo ' <Part>
<Input>' >> $file_out
echo ' <File>'${arry[0]}'</File>' >> $file_out
echo ' <OnlyUnfolder>true</OnlyUnfolder>' >> $file_out
echo ' <SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\o0904\cnhbensonol1\OUTPUT\NC FILES</Directory>' >> $file_out
cat tmp | rev | cut -d"\\" -f1 | rev | cut -f1 -d "." > out.txt
line=`cat C:/opti/O0904/cnhbensonol1/out.txt`
while IFS= read -r line; do
echo ' <File>"$line"</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\o0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>'$line'</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\o0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>'$line'</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\o0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>'$line'</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\o0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>'$line'</File>
</ProcessDocumentation>
</SaveSettings>
</Input>' >> $file_out
echo ' </Part>' >> $file_out
done < $line
done < $file_in
printf "%s\n" "header"
echo ' </Parts>
</Program>' >> $file_out
rm out.txt
rm tmp
currently the second array does not work as I would like and is giving an error ambiguous redirect.
Output should be like so. I apologize for the length of this but It is necessary.
<?xml version="1.0" encoding="utf-8"?>
<Program version="1.2">
<Input>
<Name>Demo</Name>
</Input>
<Parts>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\20038100.SLDPRT</File>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>20038100</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>20038100</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>20038100</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>20038100</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>20038100</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\20136210.SLDPRT</File>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>20136210</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>20136210</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>20136210</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>20136210</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>20136210</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\4_2-1.igs</File>
<Material>Mild Steel</Material>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>4_2-1</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>4_2-1</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>4_2-1</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>4_2-1</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>4_2-1</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\KC900.igs</File>
<Material>Mild Steel</Material>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>KC900</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>KC900</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>KC900</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>KC900</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>KC900</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\MetalSheet_Pusher.step</File>
<Material>Mild Steel</Material>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>MetalSheet_Pusher</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>MetalSheet_Pusher</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>MetalSheet_Pusher</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>MetalSheet_Pusher</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>MetalSheet_Pusher</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\Sheet Metal Part 8.igs</File>
<Material>Mild Steel</Material>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>Sheet Metal Part 8</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>Sheet Metal Part 8</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>Sheet Metal Part 8</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>Sheet Metal Part 8</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>Sheet Metal Part 8</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\91780562_A.igs</File>
<Material>Mild Steel</Material>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>91780562_A</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>91780562_A</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>91780562_A</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>91780562_A</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>91780562_A</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
<Part>
<Input>
<File>C:\opti\O0904\cnhbensonol1\DXF FILES\91813583_A.igs</File>
<Material>Mild Steel</Material>
<Machine>AutoPOL</Machine>
<OnlyUnfolder>true</OnlyUnfolder>
<SaveSettings>
<NCFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>91813583_A</File>
</NCFile>
<Graphics>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\NC FILES</Directory>
<File>91813583_A</File>
</Graphics>
<FlatPatternDXF>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\DXF FILES</Directory>
<DXFSetting>OPTI</DXFSetting>
<File>91813583_A</File>
</FlatPatternDXF>
<AutoPOLFile>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\POLP FILES</Directory>
<File>91813583_A</File>
</AutoPOLFile>
<ProcessDocumentation>
<Save>true</Save>
<Directory>C:\opti\O0904\cnhbensonol1\OUTPUT\PDF FILES</Directory>
<File>91813583_A</File>
</ProcessDocumentation>
</SaveSettings>
</Input>
</Part>
</Parts>
</Program>
