Можно запустить как это:
for i in "$@"; do
dst="${i%pdf}jpg"
convert "$i" -resize 612x792 "$dst"
convert "$i" -resize 255x330 "${i%.pdf}_thump.jpg"
done
И назовите его как
$ bash my_script.sh *.pdf
Для переименования Вас может использовать другой сценарий. Я не понимаю Ваш .csv-файл в качестве примера. Содержат 3 строки для 3 файлов? Хорошо, дело обстоит так.
Можно переименовать файл со следующей командной строкой:
$ awk -F, '{ system("echo mv \"" $1 "\" \"" $2 "\"") }' myrename.csv
Awk выполняется echo ...
команда для каждой строки, $1
значение первого поля строки и $2
значение 2-го поля. Заключение в кавычки \"
необходим в случае, если имя файла содержит пробелы. -F,
говорит awk
использовать запятую в качестве разделителя полей.
При тестировании этой команды, можно удалить echo
сделать реальное переименование файлов. Можно добавить -n
кому: mv
избегать случайных перезаписей существующих файлов.
Sudo имеет некоторые специальные опции в, он - файл полномочий, один из которых позволяет ограничение на, он - использование к оболочкам, которые являются, работают в TTY, который не крон.
Некоторым дистрибутивам включая Linux Amazon AMI включили это по умолчанию. /etc/sudoers
файл будет выглядеть примерно так:
# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
# You have to run "ssh -t hostname sudo <cmd>".
#
Defaults requiretty
#
# Refuse to run if unable to disable echo on the tty. This setting should also be
# changed in order to be able to use sudo without a tty. See requiretty above.
#
Defaults !visiblepw
При получении вывода к STDERR на уровне сценария оболочки, а не самой команды sudo Вы имели бы, кажутся сообщением что-то вроде этого:
извините, у Вас должен быть tty для выполнения sudo
Решение состоит в том, чтобы позволить sudo выполняться в не среды TTY или путем удаления или комментирования этих опций:
#Defaults requiretty
#Defaults !visiblepw