Dan*_*s W 2 random variables bash cat
尝试创建一个 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
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想要的是这样的例子:
tmp_pass)0eq 0,则给它一个新的赋值注意:这在我上面的原始脚本中没有显示,但它确实看到它曾经使用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
Run Code Online (Sandbox Code Playgroud)