Могу ли я написать скрипт в командной строке, который повторяет все файлы в директории? - PullRequest
1 голос
/ 31 января 2012

Обычно я пишу скрипт для следующей команды, но на этот раз я хочу использовать его только один раз и поэтому хотел бы написать его в командной строке.

Скрипт обрабатывает все файлы в директории.

for FILE in *.tif     # grab all the tif files
do
    NEWFILE=test/${FILE}   # create the new file name
    gdal_translate -a_srs EPSG:25832  $FILE $NEWFILE
done

извини ... я забыл упомянуть, что попробовал " для ФАЙЛА в * .tif do NEWFILE = test _ $ {FILE} gdal_translate -outsize 50% 50%% FILE% NEWFILE сделано " ... но он останавливается с> на следующей строке ... как будто он ждет чего-то другого.

Ответы [ 2 ]

0 голосов
/ 31 января 2012

Вам нужны точки с запятой между строками скрипта. Попробуйте

 for FILE in *.tif; do NEWFILE=test/${FILE}; gdal_translate -a_srs EPSG:25832 $FILE $NEWFILE; done
0 голосов
/ 31 января 2012

В принципе нет никакой разницы между интерактивной командой и скриптом. Если вы хотите поместить свои команды в одну строку, разделяйте их точкой с запятой вместо разрыва строки.

for f in *.tif; do gdal_translate -a_srs EPSG:25832  $f test/$f; done

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

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