LINUX.ORG.RU

ImageMagic. Ещё одна проблема с пробелами.

 


0

1

Здравствуйте. Не получается использовать convert из bash-скрипта для файлов с пробелами в названии. Написал небольшой скрипт для перевода выборочных файлов jpg в один pdf. Для файлов с отсутствием пробелов в названиях работает отлично. Для остальных же возникает сообщение о неправильном использовании команды. Хотя когда в скрипте меняю convert на echo и подставляю вручную вывод этой команды как аргумент для convert, он срабатывает хорошо. :( Никак не въеду, в чём проблема. Экранировать названия пробовал по-всякому. (В коде есть закомментированные строки, это всё тщетные попытки как-то исправить ситуацию).

#!/bin/bash
FILE=$(zenity --file-selection --multiple --title="Выберите файл" --separator=",");
IFS=",";
set $FILE;
#cd $(dirname $FILE)
#pwd
for x in $FILE
	do
		#echo $x"\n"	
		x=$(basename "$x");
		cd $(dirname $x);
		#x=$( echo $x | sed 's/ /\\ /g');
		#x=$( echo $x | sed 's/(/\\(/g');
		#x=$( echo $x | sed 's/)/\\)/g');
		#echo $x
		NAMES=$NAMES$x" "
	done
#NAMES=echo $NAMES | sed 's/ /%20/g'
COMMAND=$(convert $NAMES"convert.pdf");
$COMMAND
#/home/user/bin/exconvert $COMMAND


Переменная имени файла в кавычках

Исправь её вот так ^

init_6 ★★★★★
()

Ну, вообще-то достаточно вот этого:

#!/bin/bash

FILE=$(zenity --file-selection --multiple --title="Выберите файл" --separator=",");
IFS=","

convert $FILE convert.pdf

Как пдф класть в тот же каталог, где файлы, думаю, разберешься.

Shlyapa ★★
()
Ответ на: комментарий от Shlyapa

Как сконвертить, это понятно. Проблема в том, что не конвертирует файлы в названиях которых есть пробелы. При попытке выдаёт ошибку неправильного использования команды. Экраны (всяческие кавычки, бэкслеши, и пр.) не помогают. Вы попробуйте сами свой скрипт запустить на подобные файлы.

Jay-T
() автор топика
Ответ на: комментарий от Shlyapa

Блин работает... Но почему? Почему у меня не работает? Я, конечно, понимаю, что вариант выставленный мной, извращённый, но это просто от безысходности начал пробовать всё подряд. Я использовал IFS, и также не работало, а скопировал твой код и всё работает. Видимо я в пятницу переутомился. :) Спасибо!

Jay-T
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.