根据用户输入重新启动bash脚本

根据用户输入重新启动bash脚本,bash,Bash,我正在编写一个bash脚本,用于旋转用户的AWS访问键。它所采取的所有动作都在函数中。省略每个函数的细节(这对于这个问题并不重要),我将在下面展示我脚本的基本布局 如何询问用户是否需要检查其他AWS用户的访问密钥?然后再从头开始,直到他说‘不’ 这是我的脚本的基本大纲: init() { echo "Enter your script user name:" read -r user_name ........ } main() { # AWS Lab

我正在编写一个bash脚本,用于旋转用户的AWS访问键。它所采取的所有动作都在函数中。省略每个函数的细节(这对于这个问题并不重要),我将在下面展示我脚本的基本布局

如何询问用户是否需要检查其他AWS用户的访问密钥?然后再从头开始,直到他说‘不’

这是我的脚本的基本大纲:

init() { 
     echo "Enter your script user name:"
     read -r user_name
     ........
 }

main() {
  # AWS Lab
  if [ "$accountnumber" == 123456789 ]; then
     "$user_action"
     return
  ...............
  fi

}

choose_account() {

  echo "*********************************************"
  echo "*      Choose an AWS Account            *"
  echo "*********************************************"
  .......


}

choose_action() {

  echo "*********************************************"
  echo "*         Choose an Action                  *"
  echo "*********************************************"

   .......................


}


aws_user_info() {


   echo "Enter an AWS IAM user name: "
   read -r aws_user_name
   .....
}

process_keys() {

   # Get the IAM user access key
   user_access_key1=$(aws iam list-access-keys --user-name "$aws_user_name" --profile "$aws_key" --output text --query 'AccessKeyMetadata[*].[AccessKeyId,CreateDate]' | awk 'NR==1 { print $1 }')
   user_access_key2=$(aws iam list-access-keys --user-name "$aws_user_name" --profile "$aws_key" --output text --query 'AccessKeyMetadata[*].[AccessKeyId,CreateDate]'  | awk 'NR==2 { print $1 }')
   ......

}

send_email() {

  if  [ "$key1dtSec" -lt "$taSec" ] || [ "$key2dtSec" -lt "$taSec" ]; then
  echo "*********************************************"
  echo "*        Send Email to AWS IAM Users         *"
  echo "*********************************************"
  .............
  fi

}

list_keys() {

   if  [ "$key1dtSec" -lt "$taSec" ]; then
       printf "%s has the following keys:\\n" "$aws_user_name"
      echo; echo
    ...............
    fi

}

deactivate_keys() {

       if [ "$key1dtSec" -lt "$taSec" ]; then
            echo "Deactivate $user_access_key1 for $aws_user_name? Enter Y or N:"
            read -r deactivate_key
       ..............
       fi

}

delete_keys() {


   if [ "$key1dtSec" -lt "$taSec" ]; then
        echo "Destroy $user_access_key1 for $aws_user_name? Enter Y or N:"
            read -r destroy_key
   ............
   fi

}

rotate_keys() {

         if [ "$key1dtSec" -lt "$taSec" ]; then
         echo "Rotate $user_access_key1 for $aws_user_name? Enter Y or N:"
            read -r rotate_key
        ...........
        fi

}

  init
  aws_user_info
  choose_account
  process_keys
  choose_action
  main "$@"
使用循环

again=y
until [ "$again" = n ]; then
    # Do stuff here

    printf 'Go again? (y/n) ' >&2
    IFS= read -r again
done