У меня есть папка y2015
, в которой у меня есть десять подкаталогов (d001
, d002
, d003
, ..., d010
).
В каждой папке dXXX
я должен выполнить эти команды, которые показаны ниже:
gd2e.py -mkTreeS myKinTree
rm /myKinTree/ppp_0.tree
cp /home/user/GipsyX-1.1/share/gd2e/DefaultTreeSeries/myKinTree/ppp_0.tree /myKinTree/
rinex2staDb.py y2015/d001/hyde0010.15d.Z
rnxEditGde.py -data y2015/d001/hyde0010.15d.Z -rate 30
gd2e.py -drEditedFile data.dr.gz -recList HYDE -staDb fromRnx.sta_db -HighRate -trees myKinTree/
Мне нужно вернуться к d002
после выполнения вышеуказанных команд в d001
.
Будьте осторожны, потому что в d002
я хочу заменить rinex2staDb.py y2015/d001/hyde0010.15d.Z
на rinex2staDb.py y2015/d002/hyde0020.15d.Z
и так далее для других папок d003
, d004
, ..., d010
.
Можно использовать цикл оболочки для этого. Я покажу код сначала, но считайте протесты ниже перед использованием его.
#!/bin/bash
for i in {001..010}; do
gd2e.py -mkTreeS myKinTree
rm /myKinTree/ppp_0.tree
cp /home/user/GipsyX-1.1/share/gd2e/DefaultTreeSeries/myKinTree/ppp_0.tree /myKinTree/
rinex2staDb.py "y2015/d${i}/hyde${i}0.15d.Z"
rnxEditGde.py -data "y2015/d${i}/hyde${i}0.15d.Z" -rate 30
gd2e.py -drEditedFile data.dr.gz -recList HYDE -staDb fromRnx.sta_db -HighRate -trees myKinTree/
done
Вы, возможно, должны изменить этот сценарий. Необходимо просмотреть его, чтобы гарантировать, чтобы каждое место Вы хотели значения от 001
кому: 010
включенный, существует ${i}
, и это там нет ${i}
s где-либо еще. Я также рекомендую создать резервную копию всех файлов, которые были бы затронуты путем выполнения его.
Вы упомянули, что Вам нужно к командам выполнения "В каждой dXXX папке", но Вы используете пути, которые сами имеют префиксы как y2015/d001/
. Таким образом, я предположил, что Вы на самом деле не хотите cd
в каждый каталог - выполнение так помешало бы тем путям работать.
Можно сохранить это в файле script
. (Вы, вероятно, захотите назвать это чем-то значимым, но я не знаю хорошее имя, потому что я не знаю более широкий контекст, в котором Вы выполняете эти команды.) Затем делают исполняемый файл сценария с chmod +x script
и выполненный это с ./script
.
Это использует a for
цикл (с расширением фигурной скобки) и расширением параметра. Я записал ${i}
вместо $i
потому что в некоторых местах в сценарии, такой как hyde${i}0.15d.Z
, запись $i
вместо этого попытался бы развернуть другое (по-видимому, сброс) переменная $i0
. Фигурные скобки в ${i}
, который является простым использованием расширения параметра, не имейте в виду то же самое как фигурные скобки в {001..010}
, который является диапазоном для расширения фигурной скобки.