a:123234343
b:175645453
c:aadfefee
这是脚本应该接受的名为“user”的文件。我知道(cat用户)可以从文件“user”获取所有数据。但是,我想读取数据,只保留“a:”作为变量,并将“123234343”与另一个名为“password”的文件中的数据进行比较。
abcdefg
1234
arrewewe
这是“密码”文件。在我的脚本中,我将获取这些数据并使用sha256sum获取散列值,并将散列值与文件“user”中的数据(例如123234343)进行比较。如果散列值与来自文件“user”的数据相同,则i需要将结果输出到名为“result”的新文件。输出应该看起来像“a:abcdefg”。我知道(>结果)会将一些数据发送到“结果”文件。
所以我认为有一种方法可以将“a:”存储为变量,并将“123234343”存储为另一个变量。但我不知道该怎么做,或者有一种简单的方法。
答案 0 :(得分:0)
我认为你的意思是这样的:
#!/bin/bash
while IFS=':' read p1 p2; do
echo p1 is $p1, p2 is $p2
done < user
IFS
是输入字段分隔符,它将行划分为字段,以便在执行read
时,它知道一个字段的结束位置和下一个字段的开始位置。
<强>输出强>
p1 is a, p2 is 123234343
p1 is b, p2 is 175645453
p1 is c, p2 is aadfefee
要运行脚本,请将其保存在名为go
的文件中,然后将其设置为可执行文件:
chmod +x go
然后像这样运行:
./go