bash文件中意外的文件结束

时间:2017-12-01 20:56:12

标签: bash

运行bash脚本时出现以下错误:

  

./ hi.sh:第19行:语法错误:意外的文件结尾

这是我的代码:

#!/bin/bash

#Remove unauthorized users

for line in ./unauthorized_users.txt; do

sudo userdel $line -y

sudo rm -rf "/home/$line" -y


#Remove unauthorized packages

for line in ./bad_packs.txt; do

sudo apt-get remove $line -y

sudo apt-get purge $line -y

请告诉我该怎么做。

2 个答案:

答案 0 :(得分:5)

您没有使用for关闭done循环。检查manual是否有循环结构的语法:

for bar in 1 2 3; do
   echo "$bar"
done

另请注意,您的代码不会迭代文件./unauthorized_users.txt的行。要从文件中读取行,请改为使用while循环:

while IFS= read -r line; do
   echo "$line"
done < your_file

答案 1 :(得分:1)

两个'for'循环都需要关闭'done's

for line in file; do
    echo "$line" # do some stuff
done

其他bash结构(if,case等)也需要结束语句