最初の質問> /etc/group:

最初の質問> /etc/group:

私は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/groupaddgroupを使用してください。
  • 使用しないでください>。ファイルが切り捨てられます。

他のものなら

else述部にエラーがある場合は、句に適用されます。たとえば、リダイレクト内でファイルを開くことができない場合、elseブランチが実行されます。

sleep $delay_time && exit

  • 寝る必要はありません。
  • 終了することなくすぐに次にジャンプします。fi
  • 失敗する&&sleep実行されませexitん。

turtles

  • 文学的プログラミング:変数名はコードを明確にしません。

グループ名:

  • 文学プログラミング:これはユーザーにとって明確な質問ではありません。

関連情報