我有以下伪代码:
#!/bin/bash
USERS_LIST=$(cat users.txt)
function exit_loop() {
declare -a exceeded_users
if [[ $SUM -gt 7000 ]];then
echo $SUM
exceeded_users+=("$USER")
fi
#CHECK LAST USER IN THE ARRAY
if [[ $USER = ${a[exceeded_users{#exceeded_users[@]}-1]} ]];then
break
fi
echo "${exceeded_users[@]}"
}
for USER in $USERS_LIST;do
SUM=$(( $LAST_DATE_SIZE - $PREVIOUS_DATE_SIZE ))
exit_loop
done
我的目标是,一旦“ exit_loop”函数将所有超过700mb的用户循环了,它将退出循环,但是当我回显数组exceeded_users[@]
时却没有任何输出。我需要在第二条if语句中获取数组值。
如果您有另一种方法可以在循环一次运行后退出循环 所有超过700MB的用户,我都适合。
答案 0 :(得分:0)
超出数组用户数组在函数exit_loop中本地声明,因此它不会保留调用之间存储的值。尝试在函数exit_loop之前声明超出用户,以便它是全局的,或者尝试使用-g标志Cannot convert Python object to 'vector[PyObject]]
对其进行声明以使其成为全局的。 (感谢查尔斯·达菲指出-g标志)