From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Content-Type: text/plain; charset="koi8-r" From: Andrew Grechko To: community@altlinux.ru Subject: Re: [Comm] Re: [Comm] =?koi8-r?b?ydrX0sHdxc7J0SDTIGZpbmQgySBzaGVsbCAtIMvUzw==?= =?koi8-r?b?IM7F0NLB1z8=?= Date: Sun, 17 Nov 2002 02:38:50 +0300 X-Mailer: KMail [version 1.3.2] References: <3315824444.20021117011711@udm.ru> In-Reply-To: <3315824444.20021117011711@udm.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-Id: Sender: community-admin@altlinux.ru Errors-To: community-admin@altlinux.ru X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: community@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: 17 Ноябрь 2002 00:17, ASA wrote: > Первое echo выводит все как полагается, потому что find > вызывает echo напрямую без помощи sh это я понял... > а второй -exec вызывает sh и его параметры выглядят так: > sh -c N=./тестовый~$файл ; /bin/echo "N=$N" > при парсинге этих параметров sh не находит переменной "$файл" > и подставляет пустую строку. Во всем этом можешь убедиться, что виноват неэкранированный $ - тоже ясно было, но вот "физического смысла" не увидел. Стыдно. > подставив ps f вместо /bin/echo, и сделав простое тестовое имя действительно удобно так смотреть, спасибо, возьму на заметку > файла из латинских букв - ps на него ругаться не будет. > > Короче, лечить надо заменой N="{}" на N='{}' > > Вот так у меня сработало. обрати внимание на порядок > последних " и ' Откровенно говоря, про порядок не вполне понял. Буду думать. > > find . -type f -exec echo {} \; -exec sh -c " N='{}' ; > /bin/echo "'N=$N' \; Мне как-то понятнее показалось find . -type f -exec echo {} \; -exec sh -c " N='{}' ; /bin/echo "'N=$N'" " \; Спасибо! -- With best regards, Andrew Grechko