奇妙なコマンドの後にbashプロンプトに戻ることはできません

奇妙なコマンドの後にbashプロンプトに戻ることはできません

さまざまなワイルドカードを使用して次のコマンドを実行しています。

ls testdir/!(*/)

その後、私はbashプロンプトにまったく戻ることができませんでした。 ^C、^D、さらには^Zも機能しません。リテラル文字のみを印刷します。

更新:次のように入力することがわかりました。

ls !()

同じ効果があります。私の.bash_historyを削除しても役に立ちませんでした。

したがって、2つの質問があります。

  1. このコマンドで回復できますか?

  2. bashに正確に何をするように指示し、何を待っていますか?

メモ:

ただ実行すると、!(*/)「イベントが見つかりません」とだけ浮かびます。

私が実行するls !(*/)と、echo !(*/)上記と同じことが発生します。

bashプロセスは100%CPU使用率でリストに表示されますが、そうではありません。ls

lxc コンテナで同じコマンドを実行すると、「イベントが見つかりません」と表示されます。私のbashオプションはほぼ常にUbuntu 14.04です。驚くべきことはありません。

set -xコマンドの前に使用すると、ls何もエコーされません。

注2:shoptの出力

自動CDオフ
cdable_vars オフ
CDを閉じる
ハッシュチェック
採用締切確認
ウィンドウサイズの確認
cmdhist 点灯
31 閉じると互換性があります
compat32 閉じる
40閉じると互換性があります
41閉じると互換性があります
42 閉じると互換性があります
完全な引用を完了してください。
ディレクトリの拡張とクローズ
解散する
注文グループを閉じる
実行を終了できませんでした。
エイリアス拡張
外部デバッグがオフになった
外部グローバルアクティブ化
同封の引用符
障害のあるグローバルシャットダウン
強制無視
グローバルスターを閉鎖
グローバル範囲を閉じる
gnu_errfmt オフ
添付の履歴
記録を無効にする
履歴確認が無効になっています。
ホストが完全にシャットダウンされます。
ヒューポネックシートを閉じる
インタラクティブなコメント
最後のチューブを閉じる
閉鎖
ログインシェルが閉じます。
メール警告が終了しました。
no_empty_cmd_completion オフ
nocaseglob オフ
一致するケースはありません。
空のボールオフ
プログラミング報酬の有効化
変数を開くように求めるメッセージを表示
シェルを閉じる制限
Shift_verbose オフ
ソースパスが開いている
xpg_echo オフ

セット+oの出力

+o エクスポート設定
Set -o 中括弧の拡張
set -o Emacs
+oエラー終了設定
+o errtrace 設定
+o機能追跡設定
セットオハシャル
set -o histexpand
記録設定
無視するには+oを設定してください。
Set -o 対話型コメント
+oキーワード設定
モニター設定
+o ノックローバー設定
+o noexec設定
+o ノグロップ設定
+o nolog 設定
+o通知設定
セット+o名詞セット
+o onecmd設定
set+o 物理学
+o パイプ障害設定
+o posix設定
+o権限の設定
+o詳細設定
+o vi 設定
+o xtrace設定

ベストアンサー1

shw@shw:/tmp $ ls testdir/!(*/) & pidls=$!
[1] 18453
shw@shw:/tmp $ 
shw@shw:/tmp $ cat /proc/18453/cmdline 
bashshw@shw:/tmp $ 
shw@shw:/tmp $ 
shw@shw:/tmp $ kill -9 18453
shw@shw:/tmp $ 
[1]+  Killed                  ls --color=auto testdir/!(*/)
shw@shw:/tmp $ 

おすすめ記事