다른 스크립트를 호출한 후 기본 메뉴로 돌아가기

다른 스크립트를 호출한 후 기본 메뉴로 돌아가기

추가 쉘 스크립팅이 필요한 메뉴 기반 스크립트가 있습니다. 문제는 첨부된 셸 스크립트가 완료되면 기본 메뉴로 돌아가는 대신 완전히 종료된다는 것입니다.

코드는 다음과 같습니다.

options=("Deploy code" "Backup a directory or file" "Transfer file SCP" "Start tool b" "Quit")
select opt in "${options[@]}"; do
   case $REPLY in
      1) command1; break;;
      2) sh ./backup-script.sh; break;;
      3) test1; break;;
      4) bla2; break;;
      5) break 2 ;;
      *) echo "Invalid option selected" >&2
   esac
done

backup-script.sh의 코드는 다음과 같습니다.

#!/bin/bash

# define params
read -p "Provide full path of file(s) or folder(s) you want to create a backup of: " param_backup
backed_up_path=$(echo "${param_backup}_bkp_$(date +"%Y-%m-%d_%H-%M-%S")");

# execute backup with params
echo 
echo "Attempting to create backup of specified file(s) or folder(s)..."
if cp -prvf ${param_backup} ${backed_up_path} 
    then
        echo
        printf "\033[1;32mSUCCESS: Backup created!\033[0m\n"
    else
        echo 
        printf "\033[1;31mERROR: There was an error and the backup could not be performed.\033[0m\n"
        printf "\033[1;31m       Please try again and make sure that the source path is valid or exists!\033[0m\n"
fi
echo

스크립트를 가져온 다음 반환 함수를 사용해 보았지만 도움이 되지 않았습니다(또는 제가 뭔가 잘못하고 있습니다).

backup-script.sh 실행이 완료된 후 기본 메뉴로 돌아가는 방법을 아시나요?

감사합니다!

답변1

다음 명령을 사용하여 예상대로 작동하도록 만들었습니다.

backup () { 
   ./backup_script.sh
   read -rsn1 -p "Press any key to go back to main menu"
   clear
}

options=("Deploy code" "Backup a directory or file" "Transfer file SCP" "Start tool b" "Quit")
select opt in "${options[@]}"; do
   case $REPLY in
      1) command1; ;;
      2) backup; ;;
      3) test1; ;;
      4) bla2; ;;
      5) break 2 ;;
      *) echo "Invalid option selected" >&2
   esac
done

관련 정보