Pan*_*D22 3 string random bash
我的目标是在 bash 中有这样的东西:
str=random_string(n scharacters)
Run Code Online (Sandbox Code Playgroud)
我已经设法做到了以下几点:
chars=abcdefghijklmnopqrstuvwxyz
for (( i=1; i<=n; i++ ))
do
str="${chars:RANDOM%${#chars}:1}"
done
Run Code Online (Sandbox Code Playgroud)
问题是str还包含新行。
你有什么想法?
这可能就是您正在寻找的:
\n#!/bin/bash\n\nchars='abcdefghijklmnopqrstuvwxyz'\nn=10\n\nstr=\nfor ((i = 0; i < n; ++i)); do\n str+=${chars:RANDOM%${#chars}:1}\n # alternatively, str=$str${chars:RANDOM%${#chars}:1} also possible\ndone\n\necho "$str"\nRun Code Online (Sandbox Code Playgroud)\n您的代码几乎是正确的,只是您错过了+=操作员。该+=运算符附加到变量\xe2\x80\x99s(str此处)先前的值。bash该运算符是在 3.1 版本中引入的。顺便说一句,它也可以应用于数组变量,以便将新元素附加到数组中。还必须注意的是,在算术上下文中,运算符右侧的表达式+=将被计算为算术表达式,并添加到变量\xe2\x80\x99 的当前值中。
| 归档时间: |
|
| 查看次数: |
1857 次 |
| 最近记录: |