运行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
请告诉我该怎么做。
答案 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等)也需要结束语句