创建一个以特定模式命名的文件

时间:2018-05-28 19:48:39

标签: linux bash shell

需要一些帮助。我需要为系统上存在的每个用户创建一个可执行文件(Linux),文件格式如下:

fis_nr_username

其中 nr 代表第一档,第二档等...... 情况示例 机器上的用户: stud01 stud02 stud03 我需要一个文件,每个文件都是可执行文件,如下所示: file_1_stud01 file_2_stud02 file_3_stud03

1 个答案:

答案 0 :(得分:0)

您可以遍历用户列表,然后遍历文件编号(此处为0到10)。使用带%03d的printf填充零。

#!/usr/bin/env bash                                                                                                                     

username="stud01 stud02 stud03"                                                              
for name in $username; do                                                                                                             
    for ((i=0; i<11; i++)); do                                                                                                        
      printf "file_%03d_%s\n" $i $name                                                                                                 
    done                                                                                                                              
done 

您可以将此功能设置为.bashrc

newfiles() {                                                                                                                                      
  username="$@"                                                              
  for name in $username; do                                                                                                             
      for ((i=0; i<3; i++)); do                                                                                                        
        printf "file_%03d_%s\n" $i $name                                                                                                 
      done                                                                                                                              
  done
} 

使用以下命令从终端调用该函数:newfiles firstuser serconduser。输出:

fis_000_firstuser
fis_001_firstuser
fis_002_firstuser
fis_000_seconduser
fis_001_seconduser
fis_002_seconduser