在bash脚本中,我如何引用一个文件作为交互式提示的输入



这里绝对是初学者。

我有一个名为"的文件中的密码列表;pw.prn";。

Welcome99
ABCDEFGH
12545678
lakers2021
gododgers

我希望针对哈希程序(mkpasswd -m sha-512)运行文件中的每一行,并将与分号连接的密码输出到一个新文件:

所以输出看起来是这样的:

Welcome99:$6$xDb6xNDzqtnwzVLz$LMA3CNodueIyZavW3CIGDdcl19cekNNG8EB5Hc/vMzZGUSRhbueNCkYRlyaGKAb/VjW0cBiCHdJLt4iL08gBn/
ABCDEFGH:$6$mANzCeK.SUgSD$ID/E6NYPp4cddHCevI.yua3HotbA/a7fZ7xjSk7dUI6fayuTMsO9SCdSA7MFcgh8SUcmNqrqqE4IxAoIEcmFb0
12345678:$6$CwjNF9B1Q8bkwohy$N4eZcj6YPxxbA1MYz0k9t96nCcj9VsZmzrvgqTd9tp2yXbzAdb3hWyjBq6nquMwFbKMJw9ZXs3Uqj.gfnozUS0
lakers2021:$6$fENvTJijoQgyjWMo$W37vZ364wQugW.W7k9Gl8OfJLl8DfR3tpFO/O4oPTCazJgNkJfNE4WiP4z8qSM8H1.ZJrMUWVAYdYOxt0GSHG1
gododgers:$6$1JdXTdpguO0$ZwFoDtZZ2byDemiLv5JAuea6ucAdtYQUTC4EppX2PMzSLaYtMm/ENpBZZAy70Ceuu6yAjXYtggrSOINTRWoBi0

不幸的是,我没有;我尝试过的代码";因为我甚至不知道该去哪里。这是for循环吗?虽然我曾尝试过使用bash脚本和文件中的交互式答案进行搜索,但无法将任何内容拼凑在一起
我希望我的例子能提供足够的信息来理解我在寻找什么。我在Ubuntu Linux上运行这个谢谢

您可以使用while+read循环。请参阅如何逐行(和/或逐字段(读取文件(数据流、变量(

有点像。

#!/usr/bin/env bash
while IFS= read -r line; do
printf '%s:%sn' "$line" "$(mkpasswd -m sha-512 "$line")"
done < pw.prn

在bash脚本中,我如何引用一个文件作为交互式提示的输入

使用一个变量(位置参数"$1"(

#!/usr/bin/env bash
while IFS= read -r line; do
printf '%s:%sn' "$line" "$(mkpasswd -m sha-512 "$line")"
done < "$1"

然后

./myscript pw.prn

假设脚本的名称是myscript,并且所讨论的文件是pw.prn

相关内容

最新更新