Bash For循环中编写变量包含与长度判断If条件方法
Bash脚本循环内条件判断实现
校验规则
- 规则1:校验变量
var中是否包含变量value的内容 - 规则2:校验变量
var的字符总长度是否大于113469 - 触发逻辑:两项条件同时满足时,打印
var变量的最后20个字符,即为所求答案
核心实现逻辑
直接在循环内var完成base64编码更新后做判断,全部使用Bash原生语法实现,无需调用外部工具:
- 字符串包含判断:使用
[[ $var == *"$value"* ]]语法,通配符*匹配任意前后字符,即可判断子串存在 - 字符长度判断:使用
${#var}直接获取变量的字符长度,通过数值比较运算符-gt判断是否大于阈值 - 尾部字符截取:使用
${var: -20}语法直接截取变量最后20位字符,注意冒号和负号之间需要保留空格 - 拿到结果后直接跳出循环,避免无意义的后续迭代
完整脚本代码
#!/bin/bash var="8dm7KsjU28B7v621Jls" value="ERmFRMVZ0U2paTlJYTkxDZz09Cg" for i in {1..40} do var=$(echo "$var" | base64) if [[ $var == *"$value"* ]] && [[ ${#var} -gt 113469 ]]; then echo "${var: -20}" break fi done
内容的提问来源于stack exchange,提问作者NT-ML
相关产品推荐
相关产品推荐

