У меня есть серия файлов с застежкой-молнией со стандартными именами (file1pop.zip, ..., filenpop.zip). Внутри каждого из этих файлов у меня есть файл интереса popdnamei.asc, с i = {1, n}. Я хочу выполнить две команды в этих файлах (среди которых конвертирование файлов asc в tif). Тем не менее, я не могу заставить свой скрипт bash работать. Я думаю, что неправильно понимаю, как нарезать струны на bash. Кто-нибудь знает, какая моя ошибка?Редактирование серии строк Bash со звездочками
###################
## Choose path
###################
cd
cd path/to/my/directory/with/zipfiles
###################
## Unzip, convert to tif and project (WGS84)
###################
for x in *pop.zip
do
echo $x
files=${x%%.*} #with this I hope to target the base name "filei", i={1,n} without the ".zip" extension
mkdir $files
unzip -d $files $x
y=popd*.asc
if [ -f $files/$y ] #with this I want to run my commands only if the file popdnamei.asc does exist in the file
then
newy=${y%%.*} #extract "popdnamei" without ".asc" extension
gdal_translate $files/$y $files/$newy.tif #command 1
gdalwarp -s_srs "WGS84" -t_srs "WGS84" $files/$newy.tif $files/$newy_PROJ.tif #command 2
cp $files/$newy_PROJ.tif ../Output_Storage/
fi
rm -rf $files
done
Я думаю, что у меня есть проблемы с переменной $y
. Я проверил, когда программа запускалась, и выходные файлы буквально называются «newypopd*.tif
» со звездочкой, а не с именем «завершено» (popdnamei.tif
). Кроме того, ни один файл не записывается в мой каталог Output_Storage. Я думаю, что у меня есть проблема, измельчающая переменную, определенную звездочкой для завершения, и я не совсем понимаю, что это такое. Может кто-нибудь мне помочь? Спасибо.
Благодарим за объяснение, я понимаю ошибку сейчас. –