1

Я просто попросил себя найти и изменить значение в памяти, используя scanmem, и написал этот скрипт, чтобы увеличивать простое значение каждые 5 секунд.

  #!/bin/bash

  i=88 #start counting from..
  printf "Variable increments every 5s\n"
  while [ 1 ]
  do 
    printf "Variable is %d\n" $i
    sleep 5s
    if [ $i -eq 300 ]; then 
            printf "Variable is now 300! WELL DONE!!\n"
            exit 1
    else
            i=$(( $i + 1))

            if [ $i -gt 299 ]; then
                    printf "Time is up!\n"
                    exit 0
            fi
    fi
  done

Отвратительный сценарий (держу пари, что это доставляет мне неприятности!); Я могу найти значение (всегда 4 результата) в 2 сканированиях в scanmem, прикрепленной к PID (из ps ax | grep bash), но переменная отказывается от SET до 300. Я подтвердил, что они верны, используя UPDATE и LIST. Это на самом деле будет SET, но всегда возвращается к следующему приращению.

Итак, почему значение отказывается быть измененным? Сценарий запускается от имени пользователя, Scanmem sudoed

0