一連の端末コマンド、各コマンドはファイルが存在するときに実行されます。

一連の端末コマンド、各コマンドはファイルが存在するときに実行されます。

他の質問でこれを見つけましたが、似たようなものが見つからないようです。ところでこれは本当に役に立つ内容のようです。

私のZSHフラグメント/エイリアスに1つを設定してgit add .チェーンで3つのことをしたいと思います。

  1. パスが./readme.md存在する場合は、次を実行します。医者(npmからグローバルにCLIアプリケーションをインストールします。)もしなければ、何もせずに次のステップに進みます。
  2. パスが./changelog.md存在する場合は、別のローカルCLIインストールスクリプト(名前と仮定changelogupd)がそのパスで実行されます。もしなければ、何もせずに次のステップに進みます。
  3. 前の結果に関係なく、以下を実行します。git add .

今私に二つ次のエイリアスで接続されたコマンドと.zshrc連携します。

path-exists ./readme.md && doctoc readme.md && git add . || git add .

しかし、私は欲しいサム:2つのパスチェックと条件付き呼び出しプラスgit add .


ちなみに。path-existsはいパスが存在します -cli、npmを介して世界中でインストールされます。

3つのコマンドチェーンはトリッキーに見えます。以下は、私が探しているものを大まかに示す無意味なマッシュアップです。

path-exists ./readme.md && doctoc readme.md && git add . || path-exists ./changelog.md && changelogupd changelog.md && git add . || git add .

デュアルパイプを使用して4つのケースをすべて処理する必要がありますか?

  1. readme存在しない、changelogしかもgit add .
  2. readme存在しない、存在しない、存在しない、存在しない、存在しない、存在しない、存在しない、存在しない、存在しchangelogないgit add .
  3. どちらもreadme存在しchangelog、しかもgit add .
  4. いいえreadmechangelog今はgit add .

)

それとももっと簡単な方法がありますか(またはnpm CLIライブラリまたはいくつかの秘密の端末コマンド)。

ところで、これはMac端末で実行されています。ありがとうございます。

ベストアンサー1

ただ関数を書く:

my-git-add-.() {
  [ -e readme.md ] && doctoc readme.md
  [ -e changelog.md ] && changelogupd changelog.md
  git add .
}

おすすめ記事