私はbashの読み込み機能を使いこなしています。私は今のところ私の現在のシェルの上にシンプルなレイヤーがあるのが好きです。 read -eはタブ完了とそれ以前のコマンドを実行し、ctrl + dでEOFを送信すると元のシェルに戻ります。私はSIGINT、Ctrl + Cを扱ういくつかの助けが欲しいbashのstdinから読み込むときに割り込み信号を処理する方法
Bash (or other shell): wrap all commands with function/script
:ここに私の参照です。通常のシェルでは、入力を開始して^ Cキーを半押しすると、直ちに行が終了します。この単純な例では、^ Cの後に、登録する前にリターンする必要があります。
どうすればいいですか?readlineのやり方は変わりませんが、SIGINTは正しく処理されますか?理想的には、while文をwhileループに送り、何とか\ nを私の読み込みが待っているSTDINに送ります。
例コード:
#!/bin/bash
# Emulate bash shell
gtg=1
function handleCtrl-C {
# What do I do here?
gtg=0
return
}
trap handleCtrl-C INT
while read -e -p "> " line
do
if [[ $gtg == 1 ]] ; then
eval "$line"
fi
gtg=1
done
「exit」と入力してCtrl-Cを押すと、終了してから新しいプロンプトを表示したいと思っています。 – CGanote