다른 스크립트의 메뉴를 사용하여 스크립트를 호출하는 방법

다른 스크립트의 메뉴를 사용하여 스크립트를 호출하는 방법

Operation.sh라는 스크립트가 있고 스크립트를 실행하면 아래와 같은 출력이 표시되고 사용자 입력을 기다립니다.

 1. Start
 2. Restart
 3. Stop
 4. Status
 Enter Option: 

"1"을 누르면 몇 가지 논리가 수행되고 위의 보기에 다시 나타납니다.

예를 들어, 다른 sh(예: other.sh)에서 Operation.sh를 호출해야 합니다.

 sh other.sh

Operation.sh에서 1을 누를 때와 동일한 논리를 수행해야 합니다.

other.sh에는 다음과 같은 내용이 있습니다.

sh operation.sh 1

말이 안 된다는 점은 이해합니다(하지만 아무 생각이 없었기 때문에 시도해 보았습니다).

다른 스크립트에서 메뉴 스크립트를 호출하는 방법(사용자가 선택한 메뉴에 따라 작업을 수행하기 위해)

답변1

#!/bin/sh 

OPC1() {
echo "Opcion 1"
}

OPC2() {
echo "Opcion 2"
}

SELECCIONA() {
if ( test $opc -eq 1 )
then
     OPC1
else
     OPC2
fi
}

#### MAIN ##########

opc=$1

if [ $1 ]
then
    SELECCIONA
else
    echo "1. start "
    echo "2. stop "
    echo "0. salir "
    read opc
    SELECCIONA
fi

답변2

echo -e "1\n2"스크립트에 파이핑을 시도해보세요 . \n다음 문자열에 메뉴 응답을 newline()으로 구분하여 넣기만 하면 됩니다 -e.

echo -e "1\n2" | operation.sh

또 다른 옵션은 텍스트 파일의 각 줄에 순차적으로 응답을 배치하는 것입니다. 그런 다음 파일을 cat하여 스크립트로 파이프할 수 있습니다.

cat responses.txt | operation.sh

관련 정보