問題タブ [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.
bash - ループが出力をパイプに送信すると、グローバル変数がリセットされます
bash(1) のマニュアルページによると、次を実行すると:
出力は次のようになります。
ループ (サブシェルとして実行) の後、変数 x は 2 にリセットされます。しかし、パイプを削除すると x が更新されます。
x を変更する必要がありますが、パイプも必要です。この問題を回避する方法はありますか?
python - 親bashからコマンド履歴を継承するUnixサブシェル
新しい bash セッションを生成する一連の python ツールを作成しました。これらの個々のサブシェルが親のコマンド履歴を継承することを望んでいます。私が試してみました:
で.bash_profile
。しかし、それは私に必要なものを与えてくれませんでした。私はこれが行われたのを見てきました。私のツールは以下を使用します:
サブプロセスを生成します。
考え?より良い方法?
bash - xterm および mpg123 による bash リダイレクト
ここに私の.fluxbox/startup
ファイル の一部があります
書かれているように、リダイレクトは失敗し、そのような出力はすべてxterm
代わりに表示されます。xterm
読み取り のマニュアルページの一部は、
mpg123
-C
配列 a のコンテンツを必要に応じて再生し、オプションの指定に従ってキーボードから制御できますがxterm
、ファイルへのリダイレクトに不満を感じているようです。このコンテキストでそのリダイレクトは可能ですか?
xterm
または、 to containなしで実行できますmpg123
。この場合、リダイレクトは取得されmpg123
ますが、キーボードに接続されていないバックグラウンド サブシェルで実行されているため、キーボードから制御できません。その接続を確立する方法はありますか?
bash - Bash: xargs で使用するエクスポート関数
私の bash スクリプトが複雑になり始めると、通常、それらを関数に分割します。これは特に複雑なパイプに当てはまります。一連の複雑なパイプ コマンド (たとえば、while ループを含む) はすぐに読みにくくなる可能性があるからです。xargs が非常に役立つ並列化が必要な場合はなおさらです。
を使用して関数をサブシェルにエクスポートできることを知っているexport -f
ため、単純なケースでは実行できます
しかし、myfunction
これが他の関数に依存している場合、これを維持するのは難しくなります - サブシェルが変更を実行するために必要とする関数が変更されるたびmyfunction
に、エクスポートステートメントを変更する必要があります - それはかなりエラーが発生しやすいようです.
サブシェルで使用する関数をエクスポートする一般的な方法はありますか? 「定義済みのすべての関数をエクスポートする」コマンドの行に沿って何かを考えていました。これにより、次のようなコード構造が可能になります
linux - デタッチされた GNU screen セッション内からコマンドの出力をメールで送信するにはどうすればよいですか?
セッションでコマンドの出力を表示し、終了時にメールで送信するセッションでbash
コマンドを実行するスクリプトを作成しようとしています。screen
ただし、常に機能するとは限らず、その理由はわかりません。以下の例の動作を抽出しました。
コマンド
毎回正常に動作します。
ただし、コマンド
時々しか機能しません。
このコマンド構造の理由は、切り離されたscreen
セッションでスクリプトを起動するために cron ジョブで使用されるため (ユーザーはスクリプトの出力をリアルタイムで表示するために再アタッチできるため)、スクリプトが完了すると出力を電子メールで送信するためです。ls
問題をテストして実証するために、例のスクリプトを に置き換えました。
私はtail -f /var/log/mail.log
郵便物が発送されているのを見ていました。このコマンドを 10 回実行しましたが、screen
送信されたメールは 2 つだけでした。もう少し難しいテストを行うために、次のようにしました。
その結果、100 件のメールのうち 39 件が送信されました。
これはもともと OSX で行われたものですが、Linux ボックスでもテストしたところ、同様の動作が見られました。サブシェルと関係があると思いますが、screen
何が問題なのかわかりません。
これを機能させるために何ができますか?