Echo не печатает правильное значение для переменной

Похоже, что это невозможно. В качестве частичного обходного пути вы можете использовать iconv в качестве входного препроцессора следующим образом.

  1. Создайте следующий исполняемый скрипт, скажем less_conv.sh:
    #!/bin/sh
    iconv -f $IN_ENC -t $OUT_ENC $1
    
  2. Определите и экспортируйте переменную LESSOPEN:
    export LESSOPEN="|-less_conv.sh %s"
  3. Вызовите less таким образом:
    IN_ENC=latin2 OUT_ENC=utf8 less somefile
    Вы также можете установить свои предпочтительные значения:
    export IN_ENC=latin2
    export OUT_ENC=utf8
    less somefile

Символ трубы | в LESSOPEN избавляет от необходимости создания временного промежуточного файла. Тире - включает этот препроцессор, когда less читает стандартный ввод.

Limitation:
Препроцессор вызывается только один раз, даже если вы нажмете F или R, поэтому вы не сможете использовать это обходное решение для растущих файлов или "потокового" стандартного ввода.

4
11.10.2017, 15:09
0 ответов

Теги

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