gpt4 book ai didi

linux - 在循环中使用 for 和 sql 输出

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:18 24 4
gpt4 key购买 nike

我有一个包含

的 roles.txt 文件
admin
user

SELECT ROLE_NAME FROM SENTRY_ROLE WHERE ROLE_NAME 产生:

admin

我试图回显 roles.txt 中不在 sql_output 中的所有角色(本例中为用户)。这是我到目前为止所拥有的:

for filename in roles.txt
do
sql_output=$(mysql -N -e "SELECT ROLE_NAME FROM SENTRY_ROLE WHERE ROLE_NAME = '$filename';")


if [ -z "$sql_output" ]
then
echo "sql_output is empty" #this is where i want to echo all the roles that are not in the output of sql_output AKA "user"
else
echo "\$sql_output is in sql_output"
fi
done

最佳答案

这不是您遍历文件行的方式。参见 http://mywiki.wooledge.org/BashFAQ/001

我会通过一个 mysql 调用来做到这一点:

# Iassume this does not produce any extraneous output,
# just a list of role names, one per line
sql_output=$( mysql -N -e "SELECT distinct ROLE_NAME FROM SENTRY_ROLE" )

missing_roles=$( comm -23 roles.txt <(echo "$sql_output") )

参见 http://manpages.ubuntu.com/manpages/bionic/en/man1/comm.1.html

关于linux - 在循环中使用 for 和 sql 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50025175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com