0

下面是我安装应用程序时执行的命令(这一行是用我们应用程序的脚本之一编写的)。通过=strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 10 | tr -d '\n'

每次我收到错误“grep:写错误:管道损坏”。

这里有几点需要注意

  1. 当我在 RHEL 7.X 上安装应用程序时。它运行没有问题。
  2. 当我在 RHEL 8.X 上运行命令目录时。它没有给出错误。
  3. 只有在 RHEL 8.x 上安装应用程序时才会引发错误。

另外,我尝试了其他几种生成字母数字字符的方法,例如:

  1. X=strings /dev/urandom | grep -o -m15 '[[:alnum:]]' 通过=echo "$X" | head -n 10 | tr -d '\n'

  2. 通过=strings /dev/urandom | tr -dc A-Za-z0-9 | head -c10

  3. 通过=cat /dev/urandom | tr -dc A-Za-z0-9 | head -c10

  4. X=strings /dev/urandom | head -n 100 通过=echo "X" | grep -o '[[:alnum:]]' | head -n 10 | tr -d '\n'

  5. 通过=< /dev/urandom tr -dc '[[:alnum:]]' | head -c10

在安装应用程序时,这些都不适用于 RHEL 8.X。但是,当直接在终端上执行时,所有这些命令都可以正常工作。

4

1 回答 1

0

命令

PASS=`strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 10 | tr -d '\n'`

由于strings. head读完 10 行后退出;grep检测到其输出管道的另一端已关闭,发出grep: write error: Broken pipe并退出;strings忽略了其输出管道的另一端已经关闭,盲目地继续无休止。

未正确使用的命令3.5.strings会生成 10 个字符的密码,尽管3.也有问题write error: Broken pipe

于 2021-06-06T15:31:06.017 回答