我是一名 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 中做这些事情,我阻止的唯一原因是必须安装 Rocks,我不喜欢临时代码存储库在我的机器上吐出他们想要的任何东西:D