目的は、p2が他のプロセスによってデータを供給されるので、パイプp2からSTDOUTにデータをコピーするバックグラウンドプロセスを開始することです。
コマンドが間違っていると思います。ただし、Enterキーを押した直後にKonsoleアプリケーションウィンドウは消えないでください。エラーメッセージが表示されるか、競合レポートウィンドウなどを送信する必要があります。
なぜこれが起こるのですか?バグですか?
必要なものを取得するには、コマンドをどのように変更する必要がありますか? (後でSTDOUT以外の場所にデータをコピーしたい場合があります。)
答え1
私はこれが間違いだと言いたいです。どのバージョンのbashを実行していますか?コマンドラインは正しくありませんが、シェルがクラッシュしてはいけません。次のような出力を見たいです。
$CP P2 &2 & [1]24800 [2]24801 $ bash: 2: コマンドが見つかりません cp: 'p2'の後にオブジェクトファイルオペランドはありません。 詳細については、「cp --help」を試してください。 [1] - 1番出口cp -i p2 [2]+ 127番出口2
「&2」には意味がありません。まあ、それはあなたが思うことを意味しません。バックグラウンドで前のコマンド( "cp")を実行し(引数が不足しているため失敗しました - ターゲットなし)、バックグラウンドで "2"というコマンドも実行しようとします。
これは以下を実行するのと同じです。
CP P2 & 2 &
「exit」を実行する「2」というエイリアス、スクリプト、またはシェル関数はありませんか?そうでなければ、シェルは確実に終了してはいけません。
何してるの? Named Pipe p2の内容を表示し、バックグラウンドで実行しようとしていますか?その場合は、以下を試してください。
cat p2 &