Bash установка глобальной переменной внутри цикла и сохранение ее значения - Или замена процесса для чайников

Я программист на C/C++ и довольно глуп в целом (или, по крайней мере, то, как bash делает вещи, заставляет меня чувствовать себя растерянным). Я не могу разобраться с подстановкой процесса.

Мне нужно определить глобальный булев, установить его где-то в цикле и использовать его в глобальной области видимости. Не мог бы кто-нибудь объяснить самым простым способом, как адаптировать приведенный ниже код, чтобы я мог достичь своей цели, достаточно просто, чтобы мне не пришлось завтра снова напрягать мозги, пытаясь понять подстановку процесса.

# DEFINE HERE

for i in `seq 0 ${DAEMON_COUNT}`;
do
        if [ ! -d "data$i" ]; then
# SET HERE
                echo "data$i does not exist. Creating...";
                mkdir data$i
        fi
done

# TEST AND USE HERE

честно говоря, я не думаю, что bash справится с этой задачей.... следующий блок выглядит следующим образом.

echo "-------------------------------------------------------------------------------"
echo "checking the state of potentially running daemons"
for i in `seq 0 ${DAEMON_COUNT}`;
do
        if [ ! -e "data$i/mongod.lock" ] ; then
                echo "[no lock file] mongod process $i does not exist"
        else
                echo "[lock file exists] process $i lock file exists "
                I_PID=`cat data$i/mongod.lock`

                if [ ! ${I_PID} ]; then
                        echo "    [GOOD] lock pid empty"
                elif [ "`ps -p ${I_PID} | grep ${I_PID}`" ]; then
                        echo "    [GOOD] data1 pid: ${I_PID} running"
                else 
                        echo "[PROBABLY FATAL] data1 pid: ${I_PID} not running."
                fi 
        fi
done
echo "-------------------------------------------------------------------------------"

Теперь мне нужен глобальный массив структур, чтобы я мог перебирать их и предпринимать условные действия для правильной инициализации демонов :/.

Может просто использовать libc и делать все это в lua, единственная причина, по которой я сдерживаюсь, это необходимость установки камней, мне не нравятся специальные хранилища кода, извергающие все, что они хотят, на мою машину :D

7
задан Community 23 May 2017 в 11:50
поделиться