Как написать и экспортировать файл Python в Bash? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть скрипт 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...