Bash:太多的争论

时间:2011-11-30 20:50:02

标签: bash arguments

我编写了以下脚本来从文本文件中添加用户。它有效,但我收到的错误是“论证太多”;有什么问题?

#!/bin/bash

file=users.csv

while IFS="," read USRNM DOB SCH PRG PST ENROLSTAT ; do

if [ $ENROLSTAT == Complete ] ;
then
useradd $USRNM -p $DOB

else

echo "User $USRNM is not fully enrolled"
fi

done < $file

#cat users.csv | head -n 2 | tail -n 1

1 个答案:

答案 0 :(得分:10)

使用引号。宽松。

if [ "$ENROLSTAT" = Complete ]

(这也是一个单一的等号。)我在shell编程中遇到的最大问题始终是隐藏空间。这是我在Perl中编写这么多内容的原因之一,为什么在Perl中,我告诉团队中的每个人在运行外部程序时避免shell 。外壳中有如此多的力量,有很多小东西可以绊倒你,我尽可能避免它。 (而不是在哪里不可能。)