направление зависания набора звездочки - Является там переменной, которую я могу использовать для записи направления зависания?

Решение - назначить PID основной заданий для переменной и записи сценария, который:

  • Проверки говорят, что каждые ~ 10 секунд температура. Что-то вроде

     Temp = ($ (датчики | awk -f '[+.]' '{Print $ 2}')))
     

    создает таблицу TEMP с двумя температурами (ACPITZ и CORETEMP) на моей коробке, вам может потребоваться отрегулировать его для вывода датчиков .

  • Если Temp> $ tempmax отправляет Убить -ТТП PID к работе (Ctrl-Z, AKA Suspend)

     (($ Temp [1]> 80 || $ Temp [2]>  80)) && kill -tstp $ jobpid
     
  • Если TEMP <$ TEMPRUN отправляет kill -Cont PID на работу (такая же, как команда BG)

     (($ temp [1] <40 && $ temp [2] <40)  ) && kill -cont $ Jobpid
     

Поскольку скрипт будет выполняться очень часто, вы можете получить временную температуру от источника вместо датчиков , чтобы получить некоторую скорость. На May Machine это работает:

temp=($(cut -c 1-2 /sys/class/hwmon/hwmon0/temp1_input) $(cut -c 1-2 /sys/class/hwmon/hwmon1/device/temp2_input))

Но опять же, вам может потребоваться настроить его для ваших потребностей.

1
22.04.2015, 09:44
1 ответ

Если вы всегда имеете одинаковое количество записей в каждом файле, и если каждый идентификатор может быть присоединен с одним и тем же идентификатором в другом файле, вы можете сделать что-то подобное (это доказательство концепции, вы должны улучшить его):

$ join -j1 <(sort -n file1.txt) <(sort -n file2.txt) | 
    awk '{if($2!=$3){k="==> BUG"}else {k=" ==> OK"}print $0,k}'

Id Value Value ==> OK
1 apple  mango ==> BUG
2 orange  papaya ==> BUG
3 mango  orange  ==> BUG
4 banana  banana ==> OK
5 strawberry straw berry ==> BUG
6 papaya strawberry  ==> BUG

Обратите внимание, что он не будет работать как есть, если ID # 4 отсутствует, например, во втором файле.

Необходимо удалить заголовки и сохранить только строки BUG .

$ join -j1 <(sort -n file1.txt | tail -n+2) <(sort -n file2.txt | tail -n+2) | 
    awk '($2!=$3){print $0," ==> BUG"}'
-121--123193-

Изменение семантики команды diff действительно наносит ущерб Виму (это объясняется в : help diff-diffexpr : Выход «diff» должен быть обычным «ed» diff. НЕ используйте контекстные различия. ) и, возможно, и другие программы.

Псевдоним чистой оболочки с тем же именем подходит, поскольку он учитывается только при интерактивном вводе команд (или в функциях оболочки, которых должно быть немного). Если вам нужна измененная команда diff для неинтерактивного использования (например, в Vim's :! ), лучше определить сценарий обертки оболочки/экспортированную функцию оболочки/псевдоним в .zshenv под другим именем , например diffu .


Если вы действительно хотите придерживаться идентичного, экспортируемого псевдонима (несмотря на риски взлома программ), вам придется перенастроить Vim, чтобы он не использовал его. К сожалению, нет простого варианта для исполняемого файла diff; необходимо написать весь пользовательский 'diffexpr' . К счастью, есть пример в : help diff-diffexpr , который эмулирует значение по умолчанию. Вам просто нужно внести небольшое изменение, чтобы избежать вашего псевдонима diff, например, указав полный путь к diff .

set diffexpr=MyDiff()
function MyDiff()
   let opt = ""
   if &diffopt =~ "icase"
     let opt = opt . "-i "
   endif
   if &diffopt =~ "iwhite"
     let opt = opt . "-b "
   endif
   silent execute "!/usr/bin/diff -a --binary " . opt . v:fname_in . " " . v:fname_new .
    \  " > " . v:fname_out
endfunction
-121--145676-

Если используется команда Dial с параметром «g», то при зависании функции CALLED вы перейдете к следующему приоритету после набора

При зависании функции CALLER вы перейдете к внутреннему номеру 'h' в том же контексте, но НЕ сможете что-либо сказать вызывающему абоненту.

0
28.01.2020, 01:41

Теги

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