From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 17 Nov 2002 01:17:11 +0400 From: ASA X-Mailer: The Bat! (v1.60q) Organization: LLB, LLC X-Priority: 3 (Normal) Message-ID: <3315824444.20021117011711@udm.ru> To: Andrew Grechko In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Subject: [Comm] =?koi8-r?B?UmU6IFtDb21tXSDJ2tfSwd3FzsnRINMgZmluZCDJIHNoZWxsIC0gy9TPIM7F?= =?koi8-r?B?0NLB1z8=?= 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 X-Reply-To: ASA List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: Hello Andrew, Sunday, November 17, 2002, 12:19:07 AM, you wrote: AG> find . -type f -exec echo {} \; -exec sh -c ' N="{}" ; AG> /bin/echo "N=$N" ' \; AG> $ ./test_f AG> ./тестовый~$файл AG> N=./тестовый~ AG> я почему-то думал, что должно работать... Не подскажете, это AG> действительно ошибка и надо в BTS, или я хочу невозможного по AG> определению? А что тут неправильного в реакции компа? N действительно содержит строку "./тестовый~" Первое 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' \; -- Best regards, ASA mailto:llb@udm.ru