У меня есть скрипт bash, который редактирует некоторые значения в файле python с именем prova.py и экспортирует его в другой каталог, используя цикл while. Проблема заключается в том, что когда я пытаюсь открыть файлы prova.py, некоторые из них представляют собой файлы python (text / x-python), а некоторые - простые текстовые документы (text / plain). Это происходит случайным образом, как будто я запускаю скрипт несколько раз, когда некоторые файлы находятся в python, а затем при следующем запуске они отображаются как текст.
Я попытался заменить $ {file} в последнем коте на prova.py, ноэто, похоже, не меняет результаты
#!/bin/bash
path='/home/students/gbroilo/Desktop/Script'
file='prova.py'
step_x=1
while [ $step_x -lt 5 ]; do #maximum value of x
step_y=1
while [ $step_y -lt 4 ]; do #maximum value of y
cp -rf ${path}/Template ${path}/Template_${step_x}_${step_y} #copy folder and rename it with variable step x and y
cd ${path}/Template_${step_x}_${step_y} #change directory and open the Template folder
x=$( cat ${file} | sed -n '/x=[^0-9]*/p' | sed 's/[^0-9]*//g' ) #isolate the value of the x coordinate
x=$( expr ${x} + ${step_x} ) #define the increment of the x coordinate
y=$( cat ${file} | sed -n '/y=[^0-9]*/p' | sed 's/[^0-9]*//g' ) #isolate the value of the y coordinate
y=$( expr ${y} + ${step_y} ) #define the increment of the y coordinate
cat ${file} | sed "s/x=[0-9]*/x=${x}/g" | sed "s/y=[0-9]*/y=${y}/g" > prova.py #substitute the old value of x and y with their new incremented value
step_y=$(( ${step_y} + 1 )) #increment by one the current value of y
done
step_x=$(( ${step_x} + 1 )) #increment by one the current value of x
done
Все экспортированные файлы prova.py должны иметь тип: Python script (text / x-python)