問題タブ [subshell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
590 参照

bash - ループが出力をパイプに送信すると、グローバル変数がリセットされます

bash(1) のマニュアルページによると、次を実行すると:

出力は次のようになります。

ループ (サブシェルとして実行) の後、変数 x は 2 にリセットされます。しかし、パイプを削除すると x が更新されます。

x を変更する必要がありますが、パイプも必要です。この問題を回避する方法はありますか?

0 投票する
2 に答える
1014 参照

python - 親bashからコマンド履歴を継承するUnixサブシェル

新しい bash セッションを生成する一連の python ツールを作成しました。これらの個々のサブシェルが親のコマンド履歴を継承することを望んでいます。私が試してみました:

.bash_profile。しかし、それは私に必要なものを与えてくれませんでした。私はこれが行われたのを見てきました。私のツールは以下を使用します:

サブプロセスを生成します。

考え?より良い方法?

0 投票する
1 に答える
725 参照

bash - xterm および mpg123 による bash リダイレクト

ここに私の.fluxbox/startupファイル の一部があります

書かれているように、リダイレクトは失敗し、そのような出力はすべてxterm代わりに表示されます。xterm読み取り のマニュアルページの一部は、

mpg123-C配列 a のコンテンツを必要に応じて再生し、オプションの指定に従ってキーボードから制御できますがxterm、ファイルへのリダイレクトに不満を感じているようです。このコンテキストでそのリダイレクトは可能ですか?

xtermまたは、 to containなしで実行できますmpg123。この場合、リダイレクトは取得されmpg123ますが、キーボードに接続されていないバックグラウンド サブシェルで実行されているため、キーボードから制御できません。その接続を確立する方法はありますか?

0 投票する
4 に答える
1859 参照

bash - Bash: xargs で使用するエクスポート関数

私の bash スクリプトが複雑になり始めると、通常、それらを関数に分割します。これは特に複雑なパイプに当てはまります。一連の複雑なパイプ コマンド (たとえば、while ループを含む) はすぐに読みにくくなる可能性があるからです。xargs が非常に役立つ並列化が必要な場合はなおさらです。

を使用して関数をサブシェルにエクスポートできることを知っているexport -fため、単純なケースでは実行できます

しかし、myfunctionこれが他の関数に依存している場合、これを維持するのは難しくなります - サブシェルが変更を実行するために必要とする関数が変更されるたびmyfunctionに、エクスポートステートメントを変更する必要があります - それはかなりエラーが発生しやすいようです.

サブシェルで使用する関数をエクスポートする一般的な方法はありますか? 「定義済みのすべての関数をエクスポートする」コマンドの行に沿って何かを考えていました。これにより、次のようなコード構造が可能になります

0 投票する
1 に答える
1240 参照

linux - デタッチされた GNU screen セッション内からコマンドの出力をメールで送信するにはどうすればよいですか?

セッションでコマンドの出力を表示し、終了時にメールで送信するセッションでbashコマンドを実行するスクリプトを作成しようとしています。screenただし、常に機能するとは限らず、その理由はわかりません。以下の例の動作を抽出しました。

コマンド

毎回正常に動作します。

ただし、コマンド

時々しか機能しません。

このコマンド構造の理由は、切り離されたscreenセッションでスクリプトを起動するために cron ジョブで使用されるため (ユーザーはスクリプトの出力をリアルタイムで表示するために再アタッチできるため)、スクリプトが完了すると出力を電子メールで送信するためです。ls問題をテストして実証するために、例のスクリプトを に置き換えました。

私はtail -f /var/log/mail.log郵便物が発送されているのを見ていました。このコマンドを 10 回実行しましたが、screen送信されたメールは 2 つだけでした。もう少し難しいテストを行うために、次のようにしました。

その結果、100 件のメールのうち 39 件が送信されました。

これはもともと OSX で行われたものですが、Linux ボックスでもテストしたところ、同様の動作が見られました。サブシェルと関係があると思いますが、screen何が問題なのかわかりません。

これを機能させるために何ができますか?