2016-07-11 8 views
0

私は、子プロセスを使ってnodejsアプリケーションで次のコマンドを実行しています。端末のコマンドラインパイプ構文

  1. which zipジップ実行アンパサンド&&

どのように我々はpath-to-zipが1)which zipから置換されますように、1つのコマンドを形成するために一緒にこれらのコマンドをチェーンすることができますを使用して

  • path-to-zip + " -r abc.zip " + path + " && du -hs abc.zip"のパスを取得します。

    パスが正しいことを確認するにはwhich zipを使用していますが、パス/usr/bin/zipが同じで、LinuxとMac OSで同じになる場合は役に立たないと教えてください。私のアプリケーションでパスをハードコーディングして、助言してください。

  • 答えて

    1

    これはシェルによって異なります。

    Bashは、Linuxディストリビューションで最も一般的なシェルです。

    Bashには、これを達成するためのコマンド置換と呼ばれる2つの一般的な方法があります。

    1. `which zip` + whatever you wantコマンド置換の( `means`、私が原因のStackOverflowの構文ポリシーに`入力します。)

    2. $(which zip) + whatever you want

    マニュアル:

    https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html

    +0

    大丈夫ですが、 '/ usr/bin/zip'は歴史を通して同じパスの下にありますか? – user2727195

    +0

    @ user2727195:答えはyesです。あなたの環境パスに基づいて 'which'の結果が決定されます。 –

    +0

    これを正しく理解するには、パスコマンド '/ usr/bin/zip -r abc.zip folder && du -hs abc.zip'をすべてのシステムで動かすと、コマンド置換を使わないことを選択できます。 – user2727195