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