我刚刚开始编写脚本。 (我刚刚学完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
最佳答案
不要尝试解析 /etc/group
,而是依靠 groupadd
来正确执行其工作。
当您使用groupadd
并且该组的名称已存在时,它将以非零代码退出。
如果 [[ $? != 0]];
然后
echo "错误,组已存在"
fi
因此循环此操作直到获得正确的组:
#!/usr/bin/env bash
echo "Enter group name: "
read group
until groupadd $group
do
read group
done
echo "${group} created"
关于linux - for循环linux脚本: Syntax error: Bad for loop variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610768/