問題タブ [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.
linux - サブシェルで変数を設定するには?
各サーバーで実行され、特定のファイルをコピーするスクリプトがあります。スクリプトは、実行中の場所とコピーする必要があるファイルを認識しています。
スクリプトはローカル データセンターからファイルをコピーしますlocal_dcが、それがダウンしているか応答していない場合は、リモート データセンターから同じファイルをremote_dc_1コピーし、それもダウンしている場合は、remote_dc_2以下に示すように別のリモート データセンターから同じファイルをコピーします。
ここで、local_dcマシンがダウンしている場合、マシンからファイルをコピーするとremote_dc_1します。そのため、このマシンがダウンしているため、他のリモート マシンからコピーするというメールを送信する必要があります。local_dc マシンがダウンしている場合に複数の電子メールを送信したくないので、最後に電子メールを送信して、ファイルごとに複数の電子メールではなく 1 つの電子メールのみを受信するようにします。
以下は私のスクリプトです -
変数 a、b、および c を使用してサブシェルで行っていることは何か問題がありますか?
c - サブシェル Unix C の実装
C でサブシェルを実装しようとしています。既に次のような通常のシェルがあります。
サブシェルがどのように機能するか、および上記のコードとどのように異なるかを理解しようとしています。
前もって感謝します。
regex - コマンドによるsed一致ブロックのフィード
次のように、行ごとに複数の部分を含む json 行があります。
すべての行の各出現箇所を、より人間が読める形式に変換したいと思います。
sed を使用して、一致したブロック (この場合はタイムスタンプ) を date コマンドの引数リストに入れてみました。これは失敗します。
これをすべてデバッグしようとして、日付に「エコー」を追加して、実行する必要があるコマンドを検証しました
最初のコマンドが期待どおりに実行されないのはなぜですか?
私が今持っている最良の推測は、サブシェルが最初に \1 置換なしで実行され、次に結果の出力が実際に sed によって使用されるということです。
自分がやろうとしていることをどのように達成できますか?
PS CentOS 6.6を使用しています
bash - pgrep -P $$ が存在しないプロセス ID を与える
出力します
トラップでのみ発生します。存在しない PID が配列に追加されるのはなぜですか? そして、この奇妙な動作を回避するにはどうすればよいですか?
bash - スクリプトで SHELLOPTS を設定するための Bash サブシェル
この質問は cygwin 固有のものではありません。ただし、cygwin メール アーカイブhttps://cygwin.com/ml/cygwin-announce/2010-08/msg00015.htmlには、cygwin 固有の igncr shellopt 変数を設定するためのさまざまな指示があり、そのうちの 1 つが次の指示です。
4a. 影響を受ける単一のスクリプトの場合は、she-bang の直後に次の行を追加します。 ~ (set -o igncr) 2>/dev/null && set -o igncr; # コメントが必要です
set -o igncr が SHELLOPTS に igncr を設定することを理解しています。ただし、命令にサブシェルでの呼び出しも含まれている理由がわかりません。私が理解していることから、サブシェルの変数と環境は親プロセスに固執しません。それの用途は何ですか?
bash - Here Documentでssh経由でサブシェル$()を呼び出してbashコマンドを実行する
次のようなssh経由でコマンドを送信しようとしました:
しかし、私の問題は、その$(uname -a)部分が実際にサブシェルを作成し、192.168.1.1サーバーではなく、このコマンドを実行したシステムで実行されることです。
どうすれば修正できますか?
PS私の実際の例には、 docker stop all コマンドが含まれていました。これは次のようになります
しかし、私は質問を単純化しました。
更新: 申し訳ありませんが、質問を単純化しすぎています。私のコマンドはHere Documentを使用します(内部コマンドは複雑で、多くの異なる引用符を使用するため)
したがって、Ignacio Vazquez-Abrams ソリューションは機能しません