특정 사용자 입력에 대해 쉘 스크립트 재실행 명령 만들기

특정 사용자 입력에 대해 쉘 스크립트 재실행 명령 만들기

내 호스트 이름을 무작위로 지정하지만 임의의 호스트 이름을 인쇄하고 예를 들어 이 호스트 이름을 사용할 것인지 묻는 쉘 스크립트를 작성 중입니다.

NEXTHOST=$(sed `perl -e "print int rand(99999)"`"q;d" /usr/share/dict/words)
echo "Do you want to use this hostname? (y/n)
read variable_name
if [ "$variable_name" = n ] ; then

(이것은 NEXTHOST에 대한 명령을 다시 실행하려는 부분입니다.) 해당 부분을 이미 이해했기 때문에 "y"에 대한 코드를 생략했습니다.

n을 입력하면 명령이 다시 실행되도록 하려면 어떻게 해야 합니까?

답변1

이에 대한 함수를 정의한 다음 재귀를 사용할 수 있습니다. 예로서:

#!/bin/bash

#Defining hostgen function
hostgen() {
    NEXTHOST=$(sed `perl -e "print int rand(99999)"`"q;d" /usr/share/dict/words)
    echo $NEXTHOST
    read -p 'Do you want to use this hostname? (y/n)' variable_name
    if [ "$variable_name" = "n" ]; then
        echo "Okay. I will generate again"
        hostgen
    else
        echo "Your final hostname is : $NEXTHOST"
        exit
    fi
}

#Run hostgen for the first time
hostgen

아직 호스트 이름을 설정하지 않았습니다. 그렇게 할 수 있습니다.

관련 정보