私はbashスクリプトを書いています。ユーザーを追加すると、通信権限は拒否されますが、ユーザーが作成されます。 Bashからこのエラーを削除するには?
function create() {
echo "name of group:"
read turtles
if [[ -n $turtles ]] && id $turtles > /etc/group 2>&1; then
echo "This group has already exists"
sleep $delay_time && exit
else
sudo groupadd $turtles && echo "Group has been added"
sleep $delay_time
fi
}
端末からのメッセージは次のとおりです。
./myname: line 78: /etc/group Permission denied
Group has been added
このエラーを解決するのに役立ちます。
答え1
groupadd
マニュアルページには次のように記載されています。
Exit Values
The groupadd command exits with the following values:
0 success
2 invalid command syntax
3 invalid argument to option
4 GID not unique (when -o not used)
9 group name not unique
10 can't update group file
グループ名がすでに存在する場合は9を返します(groupadd:グループ 'name'が既に存在します)。
したがって、あなたのスクリプトは
function create() {
echo "name of group:"
read turtles
sudo groupadd "$turtles" && echo "group $turtles created successfully..."
sleep $delay_time
}
答え2
最初の質問> /etc/group
:
- 自分で書かずに
/etc/group
addgroupを使用してください。 - 使用しないでください
>
。ファイルが切り捨てられます。
他のものなら
else
述部にエラーがある場合は、句に適用されます。たとえば、リダイレクト内でファイルを開くことができない場合、elseブランチが実行されます。
sleep $delay_time && exit
- 寝る必要はありません。
- 終了することなくすぐに次にジャンプします。
fi
- 失敗する
&&
とsleep
実行されませexit
ん。
turtles
- 文学的プログラミング:変数名はコードを明確にしません。
グループ名:
- 文学プログラミング:これはユーザーにとって明確な質問ではありません。