複数の機能をbashスクリプトに結合する

複数の機能をbashスクリプトに結合する

次のコマンド(最後のコマンドはzsh関数)を単一のbashスクリプトに結合する方法はありますか?

  • find /path/to/directory/*/* ! -name "*.js" -type f -delete
  • find /path/to/directory/*/* ! -name "*jquery*" -type f -delete
  • find /path/to/directory/*/* ! -name "*jquery*" -type d -delete
  • for dir (/path/to/directory/*(/)) rm -f $dir/*.js(OL[2,-1])

ベストアンサー1

コマンドを順番に実行するスクリプトを作成する場合は、2つの実際のオプションがあります。

  1. 最後のコマンドに対してzshを呼び出して実行するbashスクリプトを作成します(あるシェルに別のシェルを呼び出すようにします)。
  2. 4つのコマンドを順番に実行するzshスクリプトを作成し、bashを忘れてください。

bashはLinuxで非常に一般的なシェルですが、bash自体には魔法のようなものはありません。 zshスクリプトを簡単に作成することもできます。#!開始行は、スクリプトの実行に使用する必要があるプログラムを示します。

したがって、上記のオプション2を使用するには(おそらくそうします)、#!/bin/zshzsh(またはzshがシステム上のすべての場所)で始まるプレーンテキストファイルを作成してからコマンドを実行します。あなたは次のようなものを得るでしょう:

#!/bin/zsh
find /path/to/directory/*/* ! -name "*.js" -type f -delete
find /path/to/directory/*/* ! -name "*jquery*" -type f -delete
find /path/to/directory/*/* ! -name "*jquery*" -type d -delete
for dir (/path/to/directory/*(/)) rm -f $dir/*.js(OL[2,-1])

それ以上はありません。メモ:zshの性質によっては、より多くの参照を使用する必要があるかもしれませんし、必要ではないかもしれません。私は拡張変数の周りに常に「引用符」を置くことを好みます。ポジティブ場合には必要ありません(そのような場合にもしばしば必要です)。

おすすめ記事