問題タブ [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.
python - Python サブプロセス、サブシェル、およびリダイレクト
python subprocess モジュールでサブシェルとリダイレクトの魔法を使いたいのですが、うまくいかないようで、予期しないトークンについて不平を言うのは括弧です。たとえば、コマンド
cat <(head tmp)
サブプロセスに渡されると、これが得られます
java - ruby バックティック、kernel.system、exec、コマンドが成功しない
ruby コードから Java プログラムを実行しようとしています。
私のコードは次のようなものです:
私の問題は、コマンドがどちらの方法でも正常に実行されないことです。%x、バッククォートがサブシェルで実行されることはわかっているため、おそらくいくつかの環境変数が欠落しています。ただし、Kernel.system、Kernel.exec が成功することを期待していました。
シェルに直接入力すると、コマンドは正常に実行されます。これをデバッグするのに何か助けはありますか?
ありがとう!
apache - ラッパーを作成する方法 - サブシェルを回避する - apache2 書き換えマップまたはシェル スクリプトのスクリプト全般?
apache2 で外部書き換えプログラム (prg) を使用して書き換えマップを実行していますが、エラーが発生して終了する可能性があります。書き換えマップが実行されていない場合、システムは明らかに適切に機能しません。
そこで、マップ プログラム (php で記述) を実行し、終了した場合に再起動する単純なラッパー シェル スクリプトを開始したいと考えました。
シェルで手動で試してみると問題なく動作しますが、Web サーバーで起動すると動作しません。
...そして、stdin および stdout ファイルハンドルを介して書き換えエンジンと通信します。マップ関数の検索ごとに、標準入力の改行で終了する文字列として検索するためのキーを受け取ります。次に、検索された値を stdout の改行で終了する文字列として返すか、失敗した場合は 4 文字の文字列 ``NULL'' を返さなければなりません...
その理由は私にはかなり明確に思えます。最初のスクリプトは stdin を受け取りますが、sub スクリプトにリダイレクトしません。
execどうにかして、スクリプトの stdin/stdout を使用して記述子を定義し、適切にリダイレクトする必要があると思います。しかし、どうすればそれを行うことができますか?
bash - 引用符が埋め込まれたbashでの文字列拡張
問題:
次のシェルスクリプトコードは、期待される結果を生成しません。
期待される結果:
名前で作成された新しいデータベースzztest
実際の結果:
名前で作成された新しいデータベース$TARG_DB
質問:
このサンプルコードをどのように変更して$TARG_DB、補間または拡張し、期待される結果を得ることができますか?
bash - パイプを介してサブシェルから終了コードを取得する
wgetサブシェルプロセスから終了コードを取得するにはどうすればよいですか?
それで、主な問題はそれ$?が 0 に等しいということ$?=8です。
tee実際にはなくても動作します。
しかし、${PIPESTATUS}配列(そのケースに関連しているかどうかはわかりません)にもその値は含まれていません。
だから、私の質問は -サブシェルwgetを介して終了コードを取得するにはどうすればよいですか?tee
参考になれば、私の bash バージョンは4.2.20.
linux - このbashコードが機能しないのはなぜですか?
2行目で「a=b」が生成され、メインシェルのコンテキストで実行されると、a値が新しい変数になりますb。ただし、実際に表示されるのは(コマンドを手動で入力した場合)、2行目以降のエラーメッセージです。bash: a=b: command not found
どうしてこんなことに?
sed - ターゲット置換を行う
サブシェルは「$@」の結果を取得していないようで、置換を行うものは何もありません。
bash - サブシェルを使用した「cd」コマンドのエイリアスが期待どおりに機能しない
bashのエイリアスについて学びました。私は次のように作成しました:
alias="cd $directory"
どこ$directoryで使用入力からです。別のシェル スクリプトでは、次のようにサブシェルを起動できます。
( bash )
これにより、サブシェルが表示されます。ここで を実行するcdと、エイリアス に移動しcd $directoryます。これは素晴らしいことであり、期待どおりに機能しているようです。
私が探しているのは、サブシェルが起動されたとき、cd が自動的に発生するためです。
( bash | cd )
サブシェルを起動し、ユーザーが入力した場所にcdすると考えていますが、機能し$directoryていません。これを機能させるにはどうすればよいですか?私も( bash -c cd)無駄に努力しました。
ありがとう。
bash - どのように呼び出されても、実行全体を中止する Bash 関数を作成する方法はありますか?
Bash 関数で「exit 1」ステートメントを使用してスクリプト全体を終了していましたが、正常に機能しました。
しかし、次のように呼び出しても機能しないことに気付きました。
サブシェルを作成し、「exit 1」がそのサブシェルを中止し、プライマリ シェルを中止しないことを理解しています....
しかし、どのように呼び出されても、実行全体を中止する関数を作成する方法はありますか? 実際の戻り値を取得する必要があるだけです (関数によってエコーされます)。
linux - サブシェルから標準出力を取得するには?
私はこのようなスクリプトを持っていますか?
メインシェルは情報を出力しませんでした。サブコマンドから出力を取得するにはどうすればよいですか?