Как в конструкции типаfor file in `find .`; do
<blah blah blah>
doneзаставить for реагировать только на переносы строки?
То есть сейчас если find находит файл "/tmp/some\ file.foo" он выполняет две итерации с
file=/tmp/some и file=file.foo
Нужно только одну итерацию с file=/tmp/some\ file.foo
Как?З.Ы. Что-то типа опции --print0 в xargs, как я понимаю.
1. Изменить переменную IFS
2. Использовать while
find . | while read file; do <blah blah blah> ; done
>1. Изменить переменную IFS
>2. Использовать while
>find . | while read file; do <blah blah blah> ; doneВоспользовался вторым способом, все ОК.
Спасибо!
может все проще?:
for file in * ; do
echo "|${file}|"
done
>может все проще?:
>for file in * ; do
> echo "|${file}|"
>doneа разве ж какой-то шелл * разворачивает рекурсивно?
>>может все проще?:
>>for file in * ; do
>> echo "|${file}|"
>>done
>
>а разве ж какой-то шелл * разворачивает рекурсивно?нет конечно, просто может все проще и в условии задачи не требуется лезть в подкаталоги.
>нет конечно, просто может все проще и в условии задачи не требуется
>лезть в подкаталоги.Как раз подкаталоги и интересуют :)
>а разве ж какой-то шелл * разворачивает рекурсивно?У меня zsh так делает ;-)