我刚刚开始编写脚本。(我刚刚完成Linux LPI基础知识)我面临以下挑战:
创建新组。每个组必须具有唯一的名称。脚本必须进行检查以确保系统中不存在重复的组名。如果发现重复的组名,则需要报告错误,并且管理员必须尝试使用其他组名。
下面是我的“剧本”:
#!/bin/bash
echo "Please enter a group name"
read gname
for $gname in /etc/group; do
echo "Please enter another group name"
read gname
done
groupadd $gname
echo "Group $gname has been created"
这是我收到的错误。
Please enter a group name
alexandru
test.sh: 6: test.sh: Syntax error: Bad for loop variable
4条答案
按热度按时间i34xakig1#
不要试图解析
/etc/group
,而是依赖groupadd
来正确执行它的工作。当您使用
groupadd
并且组名称已经存在时,它将退出并返回一个非零代码。if [[ $? != 0 ]]; then echo "Error, group already exists" fi
因此,要循环执行此操作,直到得到正确的组:
pbgvytdp2#
您可能使用sh而不是bash来运行它。fileName.sh如果它是可执行文件,请尝试bash www.example.com或./fileName.sh,但不要使用sh fileName.sh。
yrdbyhpb3#
您可能需要迭代
/etc/group
的内容,请尝试以下操作,for $gname in $(cat /etc/group); do
另一方面,最好检查新组名是否也是现有组名。
c0vxltue4#
我做到了!!!谢谢你们,伙计们!!!(卡尔帕·韦利维蒂戈达和劳克德)
!/bin/猛击
echo“请输入组名”
读取gname
组添加$gname
当[ $?!= 0 ]时;
做
echo“输入新组名”
读取gname
组添加$gname
已完成