Я начинающий в сценарии bash, и перед вами стоит проблема. Я создал файл «script.sh», и я хочу открыть файл шаблона и заменить определенные атрибуты разными значениями. Вот мой сценарий, и я признателен, если кто-то сказать мне, что это проблема ..Редактировать файл в bash-скрипте командой sed
#!/bin/bash
TEMPLATEFILE="Template.xml"
XMLDir="Results"
OUTPUTDir="Output"
TIMES=2
QUAN=50
DIST=150
OUTPUT_File="Output_"
mkdir $XMLDir
mkdir $OUTPUTDir
rm -rf $XMLDir
rm -rf $OUTPUTDir
echo $TIMES
x=1
echo ${x}
while [ $x -le $TIMES ]
do
RANDOMVAR =${Random}
outputFile=${OUTPUT_File}"_"${QUAN}"_"${RANDOMVAR}"_"${DIST}".xml"
outputText=${OUTPUT_File}"_"${QUAN}"_"${RANDOMVAR}"_"${DIST}".txt"
touch ${outputFile}
sed -e "s/$SEEDVALUE/$RANDOMVAR/"
-e "s/$EXPIREMENT/$QUAN/"
-e "s/$DISTANCE/$DIST/"
-e "s/$OUTPUTFILE/$outputText/"
< $TEMPLATEFILE > $outputFile
echo $outputFile" is generated in "$x" iteration out of "$TIMES
x=$(($x + 1))
done
echo "done"
я запускаю файл в терминале с помощью: Баш script.sh
Файл XML содержит много строк, но Я пытаюсь изменить следующие параметры:
<run length="0" seed_value="SEEDVALUE" />
<outputfileName name="expirement" output="OUTPUTFILE" />
<distancevalue value="DISTANCE" />
<entity number="EXPIREMENT" base_num="1">
При запуске сценария, он дает мне «неожиданный конец файла»
Remove пространство после имени переменной в присваивании: «RANDOMVAR ='. В противном случае shell пытается запустить команду 'RANDOMVAR' с' = 'в качестве аргумента. – choroba
Спасибо, я сделал, но все еще имею ту же проблему – Yasmin
Это работает для меня. Вы уверены, что показываете полный код? – choroba