Если вы хотите перейти в каталоги, выполняя команду для каждого файла, найденного в них, я бы использовал команду find
, вместо того, чтобы писать что-либо с использованием shell-скрипта, я думаю.
Эта команда может получать множество параметров, например type
для фильтрации типов возвращаемых файлов или exec
для выполнения команды для каждого результата.
Например, чтобы найти каталоги, в которых я сейчас нахожусь:
find . -type d -exec echo "Hello, '{}'" \;
Что даст мне что-то вроде:
Hello, '.'
Hello, './.libs'
Hello, './include'
Hello, './autom4te.cache'
Hello, './build'
Hello, './modules'
То же самое, чтобы найти файлы в текущем каталоге:
find . -type f -exec echo "Hello, '{}'" \;
что даст мне что-то вроде этого:
Hello, './config.guess'
Hello, './config.sub'
Hello, './.libs/memcache_session.o'
Hello, './.libs/memcache_standard_hash.o'
Hello, './.libs/memcache_consistent_hash.o'
Hello, './.libs/memcache.so'
Hello, './.libs/memcache.lai'
Hello, './.libs/memcache.o'
Hello, './.libs/memcache_queue.o'
Hello, './install-sh'
Hello, './config.h.in'
Hello, './php_memcache.h'
...
Кто-то скажет «это не снаряд» ... Но зачем изобретать велосипед?
(И, в некотором смысле, это оболочка ^^)
Для получения дополнительной информации вы можете взглянуть на: