如何从 shell 脚本中的命令获取输出

如何从 shell 脚本中的命令获取输出

我正在尝试在 RHEL 中编写一个 shell 脚本,它将执行grub-md5-crypt并且用户将输入他们的密码。

现在的问题是如何获取在 shell 脚本中向用户显示的加密 md5 哈希值?

我试图弄清楚这一点,但命令重定向在这里不起作用。那么脚本执行后如何获取shell脚本中的md5加密文本呢grub-md5-crypt

答案1

result=$(grub-md5-crypt | grep xy)
echo $result

如果 grub-md5-crypt 打印到 stderr 使用:

result=$(grub-md5-crypt 2>&1 | grep xy)
echo $result

答案2

如果它在您的 shell 脚本中不起作用,您可能需要使用 bash。只需添加:

#!/bin/bash

必须处于第一的你的文件的行!

这意味着您的脚本将使用 bash 解释器,而不是普通 shell 的解释器 ( /bin/sh)。

正在完成禁止驶入的答案,您还可以将输出保存到文件中。

grub-md5-crypt | grep xy > output

或者:

result=$(grub-md5-crypt 2>&1 | grep xy)
echo $result > output

这将生成一个文件名输出,其中包含屏幕上打印的任何内容。

相关内容