|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Boris Veytsman 2:5020/400 07 May 2002 07:36:49 To : Igor Tihonov Subject : Re: Скрипт -------------------------------------------------------------------------------- Igor Tihonov <Igor.Tihonov@p3.f9.n5059.z2.fidonet.org> writes: > Системный таймер отметил Fri, 03 May 02 21:26:35 +0400 когда Boris Veytsman > писал: > >> BV> 3. Общий случай: > >> BV> for x in *; do > >> BV> y=`echo $x | tr 'A-Z' 'a-z'`; > >> BV> mv -i $x $y; > >> BV> done > >> Такое, по крайней мере, на bash, неправильно обработает файлы с > >> пробелами в именах. То есть оно их вообще не обработает, и попытается > > BV> Можно -- достаточно заменить $x и $y на "$x" и "$y". Сам я обычно HЕ > недостаточно! дело не в mv, а в том что уже в for x этому самому > x присвоится только то что до пробела. Учи матчасть! Или на крайний случай попробуй такое touch "a b" touch ab for x in *; do echo "$x"; done А потом подумай, кто именно интерпретирует пробелы в этом отрывке и на каой стадии. Упражнение: Что будет если убрать кавычки в "$x" выше и заменить echo на ls? Почему? > BV> использую пробелов, шелловских метасимволов и русских букв в именах > BV> именно потому, что люблю писать *простые* скрипты > а что ты делаеш с файлами кторым имена давал кто другой? ;) Если это подчинённый -- учу жизни. Если начальник -- переименовываю. -- Good luck -Boris Когда падают головы, не опускай своей. -- Станислав Ежи Лец --- ifmail v.2.15dev5 * Origin: Private (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/938953e00262.html, оценка из 5, голосов 10
|