shスクリプトをbashに変換しましたが、SIGINTで問題が発生しました。

shスクリプトをbashに変換しましたが、SIGINTで問題が発生しました。

私のスクリプトでshebangを#!/bin/bashに変更しました#!/bin/sh。私のスクリプトには次の行があります。

ctrlc(){
    echo; kill -INT 0; exit 0
}
trap ctrlc 2

bashクリックすると、^Cすべてが正常に機能し、プログラムが正常に終了します。ただし、shプログラムにはまだ存在しますが、次のメッセージが表示されます。/mnt/c/Users/user/Documents: 1: Maximum function recursion depth (1000) reached なぜこのメッセージが表示され、それを見ないのですか?ありがとうございます。

答え1

あなたはこれを試すことができます

 trap 'echo " "; echo "PROGRAM INTERRUPTED"; echo " "; exit 1' INT

関連情報