vi 편집기에서 동일한 쉘 스크립트를 사용하여 연 파일을 편집할 때 쉘 스크립트를 사용하여 인터럽트 신호를 캡처하려면 어떻게 해야 합니까?

vi 편집기에서 동일한 쉘 스크립트를 사용하여 연 파일을 편집할 때 쉘 스크립트를 사용하여 인터럽트 신호를 캡처하려면 어떻게 해야 합니까?

단 한 번의 클릭으로 Java 파일을 쉽게 실행하고 편집하는 데 도움이 되는 쉘 스크립트를 작성하려고 합니다. 내 말은 스크립트가 Java 파일 이름을 인수로 사용하고 후속 작업에 대해 세 가지 다른 옵션을 제공한다는 것입니다. 그 중 하나를 클릭해야 하며 이에 따라 작업이 완료됩니다. 나는 bash 쉘을 사용하고 있습니다. 제가 작성한 코드를 제공한 다음 쿼리를 인용하겠습니다.

#!/bin/sh


if [ $# -eq 0 -o $# -gt 1 ] ; then
    echo "Provide single filename"
    exit
fi

file="$1"
if echo "$file" | grep ".java$" >/dev/null ; then
    file=`expr "$file" : '\(.*\).java'`
fi
file=`echo "$file" | tr -d '.'`
file_with_ext=$file.java

response=`kdialog --radiolist "What do you want to do?" 1 "Run Program" on 2 "Open with vi" off 3 "Open with vi and then Run" off`

if [ -z $response ] ; then
    exit
fi

if [ $response -eq 2 -o $response -eq 3 ] ; then
    if [ ! -s "$file_with_ext" ] ; then
        initcode="public class $file{
    public static void main(String[] args){
        
    }
}
"
        echo "$initcode" > $file_with_ext
    fi
    vi $file_with_ext
fi

if [ $response -eq 1 -o $response -eq 3 ] ; then
    javac $file_with_ext
    if [ $? -eq 0 ] ; then
        java $file_with_ext 2>/dev/null
    if [ $? -ne 0 ] ; then
        java $file
        fi
    fi
fi

이제 이 스크립트에 더 많은 기능을 추가하고 싶습니다. 특정 키 조합을 누를 때마다 스크립트가 Java 프로그램을 실행하고(컴파일 후) 다른 터미널에 출력을 제공하고 싶습니다. 텍스트 편집기 없이도 쉽게 할 수 있습니다. 하지만 vi 편집기에서 java 파일을 편집하고 있기 때문에 break 키를 사용하면 쉘 스크립트에 포착되지 않고 vi 편집기에서는 명령으로 처리됩니다.

내가 원하는 결과를 얻을 수 있는 방법이 있나요?

어떤 종류의 도움이나 지도라도 대단히 감사하겠습니다. 감사합니다!

관련 정보