gpt4 book ai didi

bash - 在 bash 中使用/dev/random 分配一个具有 10 个字符长的随机字符串的变量?

转载 作者:行者123 更新时间:2023-12-02 21:35:33 25 4
gpt4 key购买 nike

尝试创建 10 个字符的密码并将其分配给变量并将其回显到标准输出。

这是我到目前为止创建的脚本,但它不起作用。我知道还有其他方法可以做到这一点,但当涉及超过 1 个步骤时,我从来没有真正擅长使用 | (管道)将信息从 1 个操作发送到另一个操作。

#!/bin/bash
tmp_pass=0
if [ $tmp_pass=0 ]; then
tmp_pass=`cat /dev/random`
tmp_pass=$(head tmp_pass -c 10 | base64)
echo $tmp_pass
fi

理想情况下,我想要的是这样的示例:

  1. 定义变量(例如 - tmp_pass)
  2. 将变量设置为0
  3. 如果变量eq 0,则给它一个新的赋值
  4. 将以下结果分配给变量:
    1. 生成随机字符串
    2. 获取随机字符串的前 20 个字节
    3. 将其编码为 base64
    4. 截取base64的前10个字符

注意:这在我上面的原始脚本中没有显示,但它确实在使用 echo filename(1:10) 或类似的东西来限制时看到过它它会回显第 1 行的前 10 个字符。


我知道这可以用一行完成,但我不确定如何写出来,任何例子将不胜感激。

最佳答案

这里的问题是,您尝试使用 cat/dev/random 读取输入流,它本身永远不会终止(与尝试执行 cat/dev 相同例如/stdin)。您可以通过执行类似

的操作来修复它
#!/bin/bash
tmp_pass=0
if [ $tmp_pass = 0 ]; then
tmp_pass=`head -c 10 /dev/random | base64`
echo "${tmp_pass:0:10}" #cut to 10 characters after base64 conversion
fi

关于bash - 在 bash 中使用/dev/random 分配一个具有 10 个字符长的随机字符串的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com