zsh その7 (749レス)
前次1-
抽出解除 レス栞

483
(3): 名無しさん@お腹いっぱい。 [sage] 2016/06/23(木) 22:17:15.86 AAS
.zshrcにfunctionを書いているのですが、readでユーザ入力を待っている時に、ctrl+c、ctrl+d、esc、どれも押しても強制終了できません。
ユーザ入力ができて、入力待ち中に強制キャンセルもできるようにするにはどのようにすればよいでしょうか?

function hoge(){
# 入力待ち中に強制キャンセルが何も効かない。。
printf "input: "
read string
}
484
(1): 名無しさん@お腹いっぱい。 [sage] 2016/06/27(月) 20:12:25.69 AAS
>>483
function hoge(){
trap 'return 1' SIGINT
printf "input: "
read string
}

これでどうだろう
485
(1): 483 [sage] 2016/06/30(木) 00:17:40.19 AAS
>>484

ありがとうございます。

ctrl+cのあとにエンターを押せばtrapに補足されましたが、ctrl+cだけではキャンセルされませんでした。。

バージョンはこれでした。zsh 4.3.11 (x86_64-redhat-linux-gnu)

テストで、 trap "echo aaa" SIGINT としたんですが、これ、関数が終わった後も、コマンドライン上でctrl+cすると
aaa
aaa
aaa
...
とtrapが発動するようになりますね。。
とりあえず、 read -k 1 str で1文字入力にすることで、ctrl+cが入力されるとそれでキャンセルされたように見えるのでこれで代用しようかな。
487: 483 [sage] 2016/07/07(木) 00:51:28.67 AAS
>>486
486(1): 名無しさん@お腹いっぱい。 [] 2016/07/01(金) 20:45:43.11 AAS
>>485
見当違いなアドバイスだが、readに-tつけては

なるほど。
秒数待ちをするんですね。
そのアイデアはまったく考えてませんでした。
案の一つとして検討させていただきます。ありがとうございます。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.246s*