gpt4 book ai didi

mysql - 修改 bash 脚本以获取文件中的每一行并执行命令

转载 作者:行者123 更新时间:2023-11-30 22:23:50 25 4
gpt4 key购买 nike

我需要修改一个 bash 脚本以获取文件中的每一行并执行命令。我目前有这个:

#!/bin/bash
if [ -z "$1" ] ; then
echo "Lipsa IP";
exit;
fi
i=1
ip=$1
while [ $i -le `wc -l pass_file | awk '{print $1}'` ] ; do
if [ -n "$ip" ]; then
rand=`head -$i pass_file | tail -1`
user=`echo $rand | awk '{print $1}'`
pass=`echo $rand | awk '{print $2}'`

CMD=`ps -eaf | grep -c mysql`

if [ "$CMD" -lt "50" ]; then
./mysql $ip $user $pass &
else
sleep 15
fi
i=`expr $i + 1`
fi
done

密码文件的格式和名称为pfile:

username password

Intranet hosts 文件采用这种格式(逐行)并命名为 hlist:

192.168.0.1
192.168.0.2
192.168.0.3

有什么建议吗?

最佳答案

我不明白你想做什么你还没有做。你想以某种方式使用 ip 号码文件吗?

总之,从密码文件中提取用户名和密码的方式过于复杂(客气地说);您可以以更简单的方式遍历文件中的行。而不是:

while [ $i -le `wc -l pass_file | awk '{print $1}'` ] ; do
rand=`head -$i pass_file | tail -1`
user=`echo $rand | awk '{print $1}'`
pass=`echo $rand | awk '{print $2}'`
# ...
i=`expr $i + 1`
fi

只需使用 bash (Posix) 读取命令:

while read -r user pass __; do
# ...
done < pass_file

(__ 是为了防止 pass_file 中有一行包含两个以上的值;read 命令中的最后一个变量名接收“其余的行”)。

关于mysql - 修改 bash 脚本以获取文件中的每一行并执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35903150/

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