在我的第一个Shell脚本中找出语法错误

时间:2018-11-24 01:35:32

标签: bash

我是编码的新手,这是我的第一个脚本。我一直在从代码中收到此错误,似乎无法弄清楚我在做什么错。

| LAST NAME       | FIRST NAME | JOB    | OLD    | NEW    | MESSAGE                                 
: line 25: syntax error near unexpected token `|'
: line 25: `   else | '

该脚本仅应读取一个文本文件。 II尝试使用gedit查看我的错误,而我注意到的是我的JOB =行已变色。

#!/bin/bash

printf "| % -15s | % -10s | % -6s | % -6s | % -6s | % -40s\n" "LAST NAME" "FIRST NAME" "JOB" "OLD" "NEW" "MESSAGE"

while read line
do

   USER ID=`               echo $line | cut -d '|' -f1 `
   LAST NAME=`             echo $line | cut -d '|' -f2 `
   FIRST NAME=`            echo $line | cut -d '|' -f3 `
   JOB=`                   echo $line | cut -d '|' -f4 `
   OLD NICE=`              echo $line | cut -d '|' -f5 `
   PREFERRED PASSWORD=`    echo $line | cut -d '|' -f6 `

   FULL NAME="$FIRST_NAME $LAST_NAME"

   if [ "$JOB" == "P" ]
   then
      NEW_NICE=3

   elif [ "$JOB" == "S" ]
    then
      NEW_NICE=6

   else | 
      NEW_ICE=7

   fi

   test -e /home/$USER_ID

   if [ "$?" == "0" ]

   then

     MESSAGE="$USER_ID already exists"

   else

     ENCRYPTED_PASSWORD=` echo "$PREFERRED_PASSWORD" | openssl passwd -1 -stdin `

     useradd -m -c "$FULL_NAME" -p $ENCRYPTED_PASSWORD $USER_ID

     mkdir "/home/$USER_ID/${LAST_NAME}_backup"

     chown -r $USER_ID "/home/$USER_ID/${LAST_NAME}_backup"

     echo "$USER_ID created"

  fi

printf "| % -15s | % -10s | % -6s | % -6s | % -6s | % -40s\n" "$LAST NAME" "$FIRST NAME" "$JOB" "$OLD" "$NEW" "$MESSAGE"

done < test3_data.txt

0 个答案:

没有答案