如何将多个字符串传递给python程序

时间:2018-06-18 12:28:48

标签: python bash ubuntu

为了好玩,我做了一个非常简单的Python程序:

crunch 1 5 | python pex.py

现在我尝试使用crunch强制访问,在ubuntu终端上使用shell:

_switchValue

pex.py是程序的名称。但它不起作用,我怀疑程序的执行不会迭代,但我不知道如何使这种暴力攻击工作。 你能帮助我吗?更好的完整解释。

2 个答案:

答案 0 :(得分:1)

不是取raw_input,而是在使用sys.argv调用程序时传递参数。

pas = argv[1]

然后,当您致电python pex.py <password>时,pas将设置为<password>

注意

如果密码是多个单词,则无效。您需要使用sys.argv加入' '.join()的内容(不包括第0个元素,即程序名称)。

pas = ' '.join(argv[1:])

答案 1 :(得分:0)

首先输出紧急文件。这有一个附带的好处,你可以实际检查生成的紧缩。但是,您可以跳过该文件。

crunch 1 5 >> pas.txt

将文件加载到环境数组(BASH 4示例)

readarray pas_a < ./pas.txt

每个密码执行一次

   for pas in "${pas_a[@]}"
   do
       ./python pex.py "$pas" &
   done < ./pas.txt

删除&amp;使它顺序而不是平行。

如果您愿意,请从环境中清除阵列。