問題タブ [command-substitution]
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.
shell - コマンド置換でfind(1)を使用し、ファイル名を空白で引用します
返されたファイル名に空白が含まれているコマンド置換内でfindを使用したいと思います。ファイル名を正しく引用するために必要なオプションは何ですか?試し-print0
ましたが、シェル自体では動作しません。
例:
私も試してみまし-exec echo "{}" \;
たが、それも役に立ちませんでした。
set -x
シェル拡張と実行された実際のコマンドを表示するために使用すると、次のようになります。
一重引用符はどこから来ており、なぜ各「単語」に適用されるのですか?
zsh - ZSH での出力コマンドのキャプチャとテスト
欲しいものを手に入れるために無数の方法を試しましたが、何もうまくいかないようです。私はいつものようなものになり2:not found
ます。
コマンドの出力をキャプチャして、次のように「!」と等しいかどうかをテストしたい:
エラーを回避するには、上記のコードをどのように書き直す必要がありますtest:2: = not found
か?
arrays - コマンドの出力を配列に割り当てるにはどうすればよいですか?
からの結果を配列に割り当てる必要がありgrep
ます...たとえば
これにより、検索語が見つかった行番号の行が多数表示されました。
それらをbash配列に割り当てる最も簡単な方法は何ですか?それらを変数に割り当てるだけで、スペースで区切られた文字列になります。
bash - bashローカル変数割り当てでのコマンド置換の終了コード
割り当てが関数のローカル変数に対するものである場合、bashのコマンド置換の終了コードを確認するにはどうすればよいですか?
次の例を参照してください。2つ目は、終了コードを確認する場所です。
誰かがこれに対する良い回避策または正しい解決策を持っていますか?
c++ - シェル コマンドの置換を防止する
シェルスクリプトでコマンド置換を防ぐ方法はありますか?
たとえば、スクリプトに次のような行が含まれているとします。
「echo foo」を取得する方法が欲しいです。foo であるコマンドの代替だけではありません。
編集:後で評価するためにこれらのコマンドを保存しようとしています。さらに、スクリプトを手動で編集することはできません。C/C++ プログラムでこれらの値が必要なため、何らかの形でスクリプトを解析する必要があり、目的が失われます (これはまさに私が避けたいことです: スクリプトの解析)。
編集#2:ここで説明されている完全な状況:次のような一連の変数を含むこのシェルスクリプトがあります:
など。すべての変数に式の右側の部分 (つまり、"bar" と `some_command`) を格納する必要があります。C/C++ プログラム内からこれを行う必要があるため、スクリプトを手動で編集することはできません (たとえば、一重引用符を追加するなど)。
bash - Bashスクリプトコマンドのリダイレクト/再利用-多方向の階層化されたリダイレクトを実現する方法は?
コマンドのリダイレクト/再利用を理解するのに苦労しています...
出力を組み合わせるための<(...) <(...)
方法論と手法があることを理解しています。しかし、違いが何であるかを完全には理解$( ... && ... )
していません(新しいシェル内にダンプされ、dirをジャンプして、エクスポートしていない変数を失う可能性があることを認識していますが、それがどのように影響するかはわかりません一般的なリダイレクトスキーム)と、次の例と手順をざっと読んだ後、1対多のリダイレクトを行う方法についてはまだかなり混乱しています:Advanced Bash Scripting Guide 1 Advanced Bash Scripting Guide 2(...)
私自身がそれをいじってみたところ、ほとんどの場合「あいまいなリダイレクト」エラーが発生しました。
たとえば、以下の擬似コードで指定されたワンライナーを実行したいとします。
またはプロセス図として
出力が-->
;として指定されている場合。別の操作で再利用するためのストレージは、-->(#)
;によって与えられます。と組み合わせ操作はによって与えられ&&
ます。
私は現在、冗長なコードなしでこれを1行で行う方法がわかりません。
強力なワンライナーを作成できるように、コマンドリダイレクトを本当にマスターしたいと思います。
うまくいけば、それで十分です...必要に応じて、コマンドの概念実証の例を思いつくことができますが、擬似コードでアイデアが得られるはずです。
bash - pgrepは予想とは異なるpidを出力します
私は小さなスクリプトを作成しましたが、何らかの理由で、パラメーターで渡されたスペースをエスケープして機能させる必要があります。
この問題を抱えている人々に関する他の多くの記事を読みました。これは通常、$ @を引用しないことが原因ですが、すべての変数はスクリプト内で引用され、パラメーターもコマンドラインで引用されています。また、スクリプトをデバッグモードで実行すると、返される行はコピーアンドペーストで正常に実行できますが、スクリプト内から実行すると失敗します。
コード:
例:
bash test.sh "blah blah"
失敗し、代わりに現在実行中のシェルのpidを返します
bash test.sh "blah\ blah"
成功し、pgrepを介して検索しているプロセスのpidを返します
bash - AWK を使用してファイルから行を読み取り、変数を作成する
ファイル名のリストを含むテキスト ファイルがあります。AWK を使用して特定の行番号から変数を作成したいと考えています。次を使用して正しい出力を取得します。
この出力を変数に割り当てたいのですが、ドキュメントから、次のように動作すると予想していました。
また
でも、
は空白です。私は bash スクリプトを初めて使用するので、何かアドバイスをいただければ幸いです。
bash - bashコマンド置換:一重引用符で囲まれたワイルドカードを使用してコマンドを検索します
「検索」コマンドを動的に作成して、何かが返されるかどうかを確認したいと思います。
これは最小化された例です。ファイルを含むディレクトリで、
もちろんファイルを返します。だが
何も返しません。引用符の解釈の問題のように見えます。しかし、なぜ?
(実際には、特定のプレフィックスを持つファイルが存在するかどうかを確認したいので、を使用し-name '${MYPREFIX}*'
、内の出力をキャプチャして$()
、結果の文字列が空かどうかをテストするつもりでした。)
これが些細なことである場合はお詫び申し上げます。私は答えを見つけるために時間を費やしましたが、私が見つけたすべてのケースはどういうわけか異なっていました。通常、問題は、findコマンドでワイルドカードを実行する必要があるときにシェルがワイルドカードを展開することです。ここで、シェルは時期尚早の拡張を行いませんが、findも文字通りの引用符を受け取るためか、findも行いません。洞察をありがとう。
linux - bashでの置換の順序
コマンド置換、変数置換、グロブが発生する順序を示す必要があります。それを行う方法について何かアイデアはありますか?