Vladimir Zolotykh -> [email protected] @ Sun, 23 Jul 2006
14:38:55 +0300:
VZ> Вот такая команда
VZ> for f in /media/cdrom0/*; do cmp "$f" ./$(basename "$f"); done
VZ> не работает из-за того, что имена файлов на CD содержат пробелы и знаки -
VZ> Ошибки приблизительно такие
VZ> cmp: invalid --ignore-initial value `-'
VZ> ....
VZ> Почитал man cmp, но там на эту тему не нашёл ничего.
VZ> Можно ли как-то все-таки использовать cmp в таком контексте ?
VZ> Существует ли какой-то универсальный способ для решения таких
VZ> случаев, имею ввиду для всех утилит, а не для каждой в отдельности ?
VZ> Using Sarge
Вообще-то от минусов полное имя всегда помогало. Другое дело - если
шелл используется такой, который при наличии файла с пробелом в имени
раскрывает его в шаблоне после in в несколько слов, что менее вероятно,
или, что более вероятно, делит на слова результат $(basename "$f"). ``
(а $(), кажется, ему эквивалентно) делает именно так. Соответственно,
нужен второй уровень квотинга. Или, что более логично в данном случае,
заменить $(basename "$f") на "$f:t".
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: [EMAIL PROTECTED]
А еще следует потребовать, чтобы программисты, перед тем, как писать код,
внимательно прочли спецификацию: с сыром - это чизбургер.
Игус в <[EMAIL PROTECTED]>
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]