1

我正在使用openssl加密文件中的数据。

在将该文件中的数据分配给 shell 变量的过程中,我正在动态解密该文件并尝试使用awk将其解析为变量。

$ myuser=$(echo | awk '{print $1}' | openssl aes-256-cbc -in encrypted -pass file:../password.txt -d) 
$ echo $myuser 
Bruce-Wayne Batman 0.0.0.0

我应该只是回应Bruce-Wayne,但不知何故我的awk指令没有像我预期的那样工作。

任何人都可以提供见解吗?

4

2 回答 2

1

你似乎把你的管道弄糊涂了:

$ myuser=$(openssl aes-256-cbc -in encrypted -pass file:../password.txt -d | awk '{print $1}')

那就是你想要第一个Bruce-Wayne Batman 0.0.0.0有效的字段:

echo "Bruce-Wayne Batman 0.0.0.0" | awk '{print $1}'

echo | awk '{print $1}'与将(什么都不是)echo的输出通过管道传输到.echo awk

于 2013-01-17T13:59:21.507 回答
1
myuser=$(openssl aes-256-cbc -in encrypted -pass file:../password.txt -d | awk '{print $1}') 

您不需要 echo,您应该 awk openssl 命令的输出。我没有你的 password.txt,所以我只是创建了一个明文版本,并用 cat password.txt 替换了你的 openssl 命令。使用您的订单,通过回声,我得到了您的输出。使用我的命令,没有回声,我得到了布鲁斯韦恩。

于 2013-01-17T13:59:55.720 回答