Установите язык для единственного выполнения программы

К сожалению, Ваш пример:

execindirectory -d /var/log "cp *.log ~/Desktop"

не нуждается в изменении в dir, потому что

cp /var/log/*.log ~/Desktop

сделал бы то же. Разве Вы не можете стать ближе к своей настоящей проблеме? Поскольку мы могли бы знать лучшее решение для этого также.

Сложным способом решить Вашу проблему, которая является далеко от элегантности решения Michaels, является использование находки, которая имеет переключатель '-execdir', чтобы быть выполненной в dir, где файл найден. Плохо принятый к Вашему примеру:

find /var/log -maxdepth 1 -type f -name "*.log" -execdir echo cp {} ~/Desktop ";"

Возможно, это полезно для Вашей настоящей проблемы.-okdir вместо-execdir попросит, чтобы Вы подтвердили каждый вызов.

- okdir и-execdir, возможно, должны были бы найти гну, чтобы быть установленными, который обычно используется на Linux.

11
23.05.2017, 14:33
2 ответа

В ksh, ударе и подобных оболочках,

LANG=es_MX.utf8 ./hellogt

установит LANG=es_MX.utf8 только для вызова ./hellogt.

Более портативно существует названная программа env

env LANG=es_MX.utf8 ./hellogt

который установит переменные среды и запустит указанную программу. Это работает во всех оболочках, включая csh и традиционный sh (которые не поддерживают первый метод).

11
27.01.2020, 19:58

Вы имеете в виду что-то как:

LANG=es_MX.utf8 ./hellogt

? Или возможно Вы подразумеваете, что хотите проанализировать командную строку (argv), найти, что язык передал в, и передайте его setlocale?

8
27.01.2020, 19:58

Теги

Похожие вопросы