脚本循环查找包含字符串RECHERCHE(从其他脚本导出)的每个用户,并更改其权限及其默认权限。每当我尝试运行它时,我都会收到语法错误。
#!/bin/bash
while read line
do
if [-z "$(grep "/home" | cut -d: -f5 | grep -i "$RECHERCHE")" ]
then
user=$(cut -f: -f1)
file=$(find / -user user)
if [$(stat -c %a file) >= 700]
then
chmod 700 file
fi
if [$(stat -c %a file) < 600]
then
chmod 600 file
fi
umask 177
done 2>> /home/$user/challenge.log
我知道这可能会同时出现很多问题,但是当我尝试运行它时,它会在完成时给出一个语法错误(第18行:意外令牌“已完成&#39;附近的语法错误),所以我不知道它背后的逻辑是否有效。另外,我不知道我在做什么。请帮助,并提前感谢。
答案 0 :(得分:0)
你错过了一个电影。而且我不确定你要用你读过的那行做什么。我显然无法运行此操作,您需要完成修复,但完成的特定问题已解决,请参阅以下版本的代码:
#!/bin/bash
read line
while $line ; do
if [-z "$(grep "/home" | cut -d: -f5 | grep -i "$RECHERCHE")" ]; then
user=$(cut -f: -f1)
file=$(find / -user user)
if [$(stat -c %a file) >= 700]; then
chmod 700 file
fi
if [$(stat -c %a file) < 600]; then
chmod 600 file
fi
umask 177
fi
read line
done 2>> /home/$user/challenge.log
答案 1 :(得分:0)
在您的代码中,如果缺少条件关闭,则执行一次。