首页 > 解决方案 > 我想在从文件创建的每个用户名的末尾添加 2 个随机数。我将如何在 bash 中执行此操作?

问题描述

!#/bin/bash
 echo "which list of names would you like to add?"
 read file
 USER_LIST="(cut -d " " -f 1,2,3 $file --output-delimeter='.') " 
 echo "$USER_LIST | while read user; do echo "useradd "$user"";
 done

使用 userlist.txt 詹姆斯邦德本阿弗莱克约翰斯图尔特阿卜杜勒拉希姆穆罕默德

电流输出

james.bond
ben.afflack
john.stewart
abdul.rahim.muhammad

期望的输出

james.bond22
ben.afflack13
john.stewart11
abdul.rahim.muhammad83

将数字添加到末尾的最简单方法是什么?我正在考虑按照 .$((RANDOM%10)).$((RANDOM%10)) 的方式做一些事情

任何帮助深表感谢。谢谢

标签: linuxbashscripting

解决方案


使用 $RANDOM,您走在正确的轨道上,但是它比您想象的要容易。我能够通过以下方式做到这一点:

user=james.bond
rand=${RANDOM:0:2}
if [ ${#rand} -lt 2 ]
then 
  rand=0$rand
fi
user=$user$rand

这会将用户设置为james.bond23(或其他一些 2 位数字)。您只需使用参数扩展来挑选由 $RANDOM 生成的前两个数字。


推荐阅读