Решение - назначить 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))
Но опять же, вам может потребоваться настроить его для ваших потребностей.
Если вы всегда имеете одинаковое количество записей в каждом файле, и если каждый идентификатор может быть присоединен с одним и тем же идентификатором в другом файле, вы можете сделать что-то подобное (это доказательство концепции, вы должны улучшить его):
$ 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' в том же контексте, но НЕ сможете что-либо сказать вызывающему абоненту.