回答:
番号。
(デバッガで「インタラクティブ」ビットを反転する方法を見つけない限り。)
coreutils/src/remove.c:335
→ coreutils/lib/yesno.c:46
(生成)→ rpmatch(3)
: "認識された否定応答(" no ")の場合は0、肯定応答(" yes ")の場合は1を
まあ、これは本当にあなたの質問に答えません。ただし、を使用する代わりにrm -i
、次のエイリアスrm
を検討してrm -I
ください。
マニュアルページは次のように述べています:
-I prompt once before removing more than three files, or when removing
recursively. Less intrusive than -i, while still giving protection
against most mistakes
あなたの中に~/.bashrc
、入れて:
alias rm='rm -I'
これは実際に便利です!
画面で実行している場合(一般的には良い考え)、次のことができます。
ctrl-a : exec .! yes y
これにより、screenはyを出力として 'yes'コマンドを実行し、その出力を実行中のプログラムに送信します(rm -i)。
これは、オンザフライでアプリケーションファイル記述子を置き換えることで実行できます。ただし、中間ファイルが必要になります。
次のようにgdbと名前付きパイプを使用できます(より多くの端末を使用していると仮定すると、それ以外はscreenまたは何かを使用する必要があります)。
次に、PDBを置き換えて、gdbに次のコマンドを入力します。
attach rmPID
call open("/path/to/myYesYesPipe",66,0666)
call dup2(3,0)
call close(3)
detach
quit
これは、キーボードをrmの名前付きパイプに置き換えます。
次に、名前付きパイプを埋める必要があります
rmはパイプを読み取り、すべてを上書きします。
rm
プロセスをバックグラウンドで実行しCtrl+Z
ます。rm -i *
コマンド)を呼び出す-i
Enter
コマンドを実行するにはfg %1
Ctrl+C
5s/fg/kill/; 6d