問題タブ [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 投票する
4 に答える
6461 参照

bash - サブシェルを作成せずにコマンドの出力を変数に格納する方法[Bash

kshには、これを行うための非常に興味深い構造があり、この回答で詳しく説明しています: https://stackoverflow.com/a/11172617/636849

Bash 4.0 以降、この問題を解決する組み込みのmapfile組み込みコマンドがあります: http://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html

しかし、奇妙なことに、プロセス置換では機能しないようです:

しかし、Bash v3.2 でこれを行う方法は?


そのようにサブクラスを使用することは本当に可能ですか? 私は次のようなことをしたでしょう:

...何を達成しようとするかによって異なります。

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

bash - なぜサブシェルを避けるのですか?

サブシェルを回避するために何かをすることについて言及しているStack Overflowに関する多くの回答とコメントを見てきました。場合によっては、これには機能的な理由が示されますが (ほとんどの場合、サブシェル内で割り当てられたサブシェルの外部の変数を読み取る必要がある可能性があります)、回避すること自体が目的と見なされる場合もあります。例えば

どうしてこれなの?スタイル/エレガンス/美しさのためですか? パフォーマンスのために(フォークを回避するため)?起こりそうなバグを防ぐためですか?他の何か?

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

bash - スクリプト内で「コマンド置換」と「サブシェル」を区別するにはどうすればよいですか?

( …サブシェル… )$( …コマンド置換… )の 2 つのケースを区別する必要があります。

コマンド置換またはサブシェルで実行されることと、スクリプトで直接実行されることを区別する次の関数が既にあります。

出力例:

望ましい出力

しかし、コマンド置換とサブシェルを区別するようにコードを更新したいと思います。出力を生成したい:

trapPSコマンド置換とサブシェルで実行すると、Bashは組み込みコマンドの動作が異なるため、これらのケースを区別する必要があります。

echoScriptRunWay | catPPSコマンドも気にします。しかし、私がここで作成したのは私にとって新しい質問です。

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

bash - 配管中にトラップは期待どおりに機能しますか?

問題のデモ用の最小限のコードは次のとおりです: http://pastebin.com/5TXDpSh5

出力

期待される出力

NB: OSX 10.9.2 bash (3.2.51) でテストしました - 他のバージョンの bash では、実際の予想される出力と同じ違いがあり、以下で説明します

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

bash - ( ) & と ( & ) の違いは?

bash:( &)( ) &.

私が気付いた唯一の違いは、現在の tty 名を返すの(tty &)に対し、「not a tty」を(tty) &返すことですが、なぜですか?

例を挙げると、またはを実行する必要があります(setsid startx &)(setsid startx) &?

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

shell - ksh --> サブシェル内から親シェル (メイン シェル) でコマンドを実行することは可能ですか?

メイン シェルのディレクトリを変更する簡単なスクリプトを作成しようとしています。サブシェル (上記参照) 内でディレクトリを変更する作業を行っていますが、明らかにスクリプトの実行が完了すると、外側のシェルに戻り、元のディレクトリに戻ります。

サブシェル内から外部シェルにコマンドを渡すことは可能ですか? 外部シェルに cd コマンドを渡すことはできますか?

たとえば、私が実行した場合:

ディレクトリを次のようにしたい:

一旦外殻に戻ります。

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

tee - ティーの終了ステータス>(...)

私は実行しています:

Command2はgrepの終了ステータスに基づいて実行されますが、現在の構成ではteeの結果に基づいて実行されています。

私の知る限り、pipefail と pipestatus はここでは機能していません (間違っている場合は修正してください)。

アレクセイの回答に基づくオリジアンの質問への修正

も試しCommand1 | tee >(grep sth || Command2)ましたが、これは元の質問で機能しますが、サブシェルでテストのステータスを設定しようとしているためです。ex、そして後で私のコードの他のチャンクでResultCommand 1 | tee>(grep sth || Result="PASSED")にアクセスできます。だから私はまだ問題があります。

ありがとう