从文件脚本错误添加用户帐户

时间:2012-09-30 22:01:21

标签: linux bash

  

可能重复:
  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

1 个答案:

答案 0 :(得分: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. 的变量的内容
  6. "quoting $a",假设变量a包含string作为其内容,则生成字符串quoting string
  7. 'quoting $a'独立于变量a,会生成字符串quoting $a
  8. 尽管对于新手来说很困惑,[实际上是test命令的“别名”,它可用于比较字符串,整数,并执行一些基本测试,例如检查权限或文件的存在。 ]实际上只是一个语法要求,只是为了通知命令它的参数已经结束(当被调用时。
  9. 我认为你的分隔符是一个空格,但我可能是错的。
  10. 希望这有点帮助=)