Я пытаюсь написать скрипт для выполнения нескольких различных программ java/r, но у меня возникла проблема с использованием значения из массива в bash. Вот мой пример:Bash Array Variable
INPUTS[0]=$1 #file
INPUTS[1]=$2 #file
INPUTS[2]=$3 #file
INPUTS[3]=$4 #file
TARGET=$5 #file
OUTPUTS[0]=$6 #file
OUTPUTS[1]=$7 #file
OUTPUTS[2]=$8 #file
OUTPUTS[3]=$9 #file
TYPE=$10 #file
PANEL=$11 #String
for ((X=0;X<${#INPUTS[@]};X++));do #for every file in this array
CURRENT="${INPUTS[X]}" #look at current in file
CURRENTOUT="${OUTPUTS[X]}" #and current out file
#this is working just fine. I put in a file myfile.txt and it makes a new file **results.txt**
java -jar javathing.jar INPUT=$CURRENT TARG=$TARGET OUTPUT=$CURRENTOUT IS=True #run this
#This is throwing an error because it can't find **results.txt0**
java -jar morejava.jar -i $CURRENTOUT -o $TYPE #then this
done
Rscript rthing.R $TYPE $PANEL #finally
Так что мой первый Java выводит правильный файл с правильным файлом name- results.txt
Но когда моя вторая программа Java идет искать его, он ищет неправильное имя. Он ищет results.txt0
Я использую одну и ту же переменную для каждого из них, но она, похоже, не имеет такого же эффекта. Может ли кто-нибудь объяснить это поведение?
Для начала, '' // не Баш символ комментария. –
@CodeGnome У меня нет таких в моем фактическом коде. Я комментировал только ради этой публикации. Есть ли у Stackoverflow символ комментария? Кажется, есть, по крайней мере, 2 нитпеккера, которые я изменю. – user2076476
Используйте символ комментария для языка, который вы пишете. '#' для bash – Barmar