我已经尝试了过去2个小时的所有工作,但我在shell和编程方面的经验有限.
我有一个循环
while IFS="," read var1 var2 var3 var4 var5 ; do
statements here...
done < $file
Run Code Online (Sandbox Code Playgroud)
现在,语句内部的操作是从一个包含5个字段的文本文件中读取,然后使用它们在Linux中使用bash创建帐户
useradd $var1 -p var2 -g var3 等等
我想让脚本只从第二行开始阅读,我不能让它工作.类似于ifs =,读取(从第二行)var 1 var 2 var3等
原因是该文件是从excel到csv的导出数据库,因此第一行将包含诸如名字dob登记等标题,并且不需要
非常感谢您的帮助
加成:
在创建用户之前,我添加了一个if语句,如果用户满足条件,则会创建它们.
if [ "$var5" == "fullyenrolled" ]; then
continue with account creation...
echo "$var1 successfuly created"
else
echo "Sorry user $var1 is not fully enrolled"
fi
Run Code Online (Sandbox Code Playgroud)
回声的输出是这样的
Full name is not fully enrolled
user1 successfuly created
user2 successfuly created
Run Code Online (Sandbox Code Playgroud)
即使我添加sed 1d | 虽然IFS =等等似乎它仍在阅读第一行,这就是为什么我得到第一个输出,如"全名未完全注册"
Eli*_*les 11
使用sed从传递给while循环的输入中"删除"第一行
sed 1d $file | while ...
do
your statements here
done
Run Code Online (Sandbox Code Playgroud)