问题描述
我的CSV文件如下所示: Table of the Students
我已经从添加用户的代码开始,但是此脚本将为该CSV文件中的每个人添加一个用户
#!/bin/bash
OLDIFS=$IFS
IFS=";"
while read firstname lastname
do
useradd -c "${firstname} ${lastname}" -d /home/"${firstname}" -G group1 -s /bin/bash "${lastname}"
done < file.csv
现在,我必须对Bash脚本进行编码,以便它读取离开日期,将其与当前日期进行比较,如果离开日期在将来,则该脚本应使用Tablerow中的名称添加一个用户。
下一部分是该脚本应停用每个已经离开的用户。并在4周后删除该用户。
我对bash还是很陌生,但是在Internet上找不到任何可用的东西。 对不起,我的英语不好。 ^^“
解决方法
一种选择是将所有内容包装在awk脚本中:
awk '{
"date -d "gsub("\\.","-",$4)" +%s" | getline ldat;
dat=strftime("%s");
if (ldat>dat)
{ system("useradd -c \""$1\" \""$2\"" -d /home/"$1" -G group1 -s /bin/bash "$2)
}
}' file
一个班轮:
awk '{"date -d "gsub("\\.",$5)" +%s" | getline ldat;dat=strftime("%s");if (ldat>dat) { system("useradd -c \""$1\" \""$2\"" -d /home/"$1" -G group1 -s /bin/bash "$2) } }' file
在名为file的文件中包含必需的数据后,我们将转换所有“。”。使用awk的gsub函数转换为“-”。然后,我们通过date命令运行此命令以获取纪元时间并将其读入变量ldat中。然后,我们使用awk的strftime函数获取今天日期的纪元日期格式。如果今天的日期小于请假日期,请使用awk的系统功能来添加用户。
然后可以扩展此逻辑以根据需要停用帐户
注意-在实际执行之前,请确保要与系统一起执行的命令符合预期。