有没有一种方法可以同时使用一个脚本运行多个bash脚本?

时间:2019-06-01 21:12:15

标签: python linux bash ubuntu terminal

我正在使用python和selenium运行instagram机器人。我使用bash脚本运行带有帐户凭据(用户名,密码,#标签等)的python脚本,因此我运行多个Instagram,因此我为此文件制作了多个副本。有没有一种方法可以将其放在一个我可以单击并运行的文件中? 要打开多个运行其分配帐户的终端?

我已经尝试过将它们添加到一个大文件中,但是脚本不会运行,直到上一个脚本完成。

此外,由于即时通讯使用硒,因此在python中尝试多线程有些困难,但如果有人可以指出我的出发点,那就不介意走那条路了。

#!/bin/sh

cd PycharmProjects/InstaBot

python3 W.py

2 个答案:

答案 0 :(得分:0)

我强烈建议所有人阅读有关Bash Job Control的信息。

如果您的瓶颈与CPU无关,那么进入多线程是可笑的矫kill过正。

for script in PycharmProjects/InstaBot/*.py; do
  python3 "$script" &
done
jobs

答案 1 :(得分:0)

shell中只有一个进程可以在前台模式下运行。因此,仅在前一个命令完成时才执行命令。 在命令行末尾添加“&”符号告诉Shell该命令应在后台执行。这样外壳将启动python并继续运行而无需等待。

这将同时执行两个实例,但是它们都将输出到同一终端:

    #!/bin/sh
    cd PycharmProjects/InstaBot
    python3 W.py first_credentials &
    python3 W.py second_credentials &

您可以使用相同的技术为每个python脚本启动一个新的终端进程:

    #!/bin/sh
    cd PycharmProjects/InstaBot
    gnome-terminal   -e "python3 W.py first_credentials"  &
    gnome-terminal   -e "python3 W.py second_credentials" &