2012-09-30 38 views
-3

可能重复:
Linux Script Extract Information From Excel To Create Users从文件脚本错误添加用户帐户

需要从excel电子表格创建用户,让上线8和13

在我的脚本中的几个误区

第8行意外的EOF,同时寻找匹配的''' 第13行语法错误意外的文件结尾

#!bin/bash 
echo $(pwd)/employeesdata.xls 
Path=$($pwd)/employeesdata.xls 
read Path 
if [ -e $Path ]; 
then 
Username= [ grep $(Username) $Path | cut -f1 -d `]' 
Password= [ grep $(Password) $Path | cut -f2 -d `]' 
useradd -- b $Username 
echo $Password | /usr/bin/passwd --stdin $Username 
fi 
exit 

Excel文件有这等信息

Name (field1) EmployeeID (field2) Phone    Address  
Joe Blow  22500033    156-454-3322  101 main 
+0

这实际上是一个Excel电子表格或一些文本格式(如csv)。请减少你的脚本到你想要的。它看起来像你正在设置路径,然后阅读它。 – CrazyCasta

+1

感谢**不crosspost **多次(格式错误)相同的问题。 http://stackoverflow.com/questions/12664630/linux-script-extract-information-from-excel-to-create-users 这个脚本完全没有任何意义... –

+0

所有我想要做的是读取数据,导出以使用用户名的名称创建用户帐户,然后使用employeeid作为密码。之后,我应该发电子邮件。 –

回答

1

我认为你必须重构的几件事情:

#!bin/bash 
echo $(pwd)/employeesdata.xls 
Path="$(pwd)/employeesdata.xls" 
read Path 
if [ -e "$Path" ]; then 
    Username=$(grep "$Username" "$Path" | cut -f1 -d ' ') 
    Password=$(grep "$Password" "$Path" | cut -f2 -d ' ') 
    useradd -- b $Username 
    echo "$Password" | /usr/bin/passwd --stdin "$Username" 
fi 
exit 

的几个注意事项:

  1. 报价您分配给变量的值(有时这不是必需的,但对于开始时它有助于避免一些问题)
  2. 引用变量的用法,除非你知道你在做什么。如果不明确引用它,变量可以为命令/函数生成各种参数。
  3. $(cmd)执行命令cmd并用命令的输出替换它的出现。
  4. $var${var}替换其本身具有可变的命名var
  5. "quoting $a"内容,假设可变a包含string作为其内容,生成该字符串quoting string
  6. 'quoting $a',与变量a无关,生成字符串quoting $a
  7. 令人困惑的是,它可能适用于新手,[实际上是test命令的“别名”,它可用于比较字符串,整数,并执行一些基本测试,如检查权限或文件的存在。 ]实际上只是一个语法的要求只是为了通知命令,它的参数已经结束(调用时。
  8. 我假定你的分隔符是一个空间,但我可能是错的。

希望这有助于一点= )

+0

+1进行痛苦的解释。不确定这个问题是否值得这种待遇,但请继续发帖!祝你们好运。 – shellter