Насколько терминальные проблемы идут, я попытался бы использовать эмулятор терминала, который, как известно, имеет сформировавшуюся поддержку Unicode, как uxterm
. Помогает, сделаны ли связанные с локалью переменные среды доступными для исполняемого файла оболочки после запуска, т.е. не набора в Вашем ~/.profile
или подобная оболочка запускает сценарий.
Я не знаю, поможет ли это Вам, но я зафиксировал свое связанное с Vim горе Unicode со следующим дополнением к моему ~/.vimrc
:
" Unicode options
if has("multi_byte")
" set the display encoding
" (default is "", or "utf-8" in the GUI)
if &termencoding == ""
" we're probably not using the GUI
" note: :set won't allow &-replacement
let &termencoding = &encoding
endif
" set the internal encoding
set encoding=utf-8
" &fileencoding (controls how characters in the internal encoding will
" be written to the file) will be set according to &fileencodings
" (default: "ucs-bom", "ucs-bom,utf-8,default,latin1" when 'encoding'
" is set to a Unicode value)
endif " has("multi_byte")
Можно сделать что-то как:
if grep extraction_reversed "$1"; then
perlscript1.pl "$1"
else
perlscript2.pl "$1"
fi
"$1"
будет заменен аргументом, переданным сценарию (т.е. inputfile
).
inputfile
и находиться в текущем рабочем dir. Я думаю, что это должно быть передано как параметр (вопрос также похож на него), и вероятно должен быть передан сценариям жемчуга (который не на 100% ясен в вопросе). – zpea 14.07.2012, 01:27