
次のコマンド(最後のコマンドは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つの実際のオプションがあります。
- 最後のコマンドに対してzshを呼び出して実行するbashスクリプトを作成します(あるシェルに別のシェルを呼び出すようにします)。
- 4つのコマンドを順番に実行するzshスクリプトを作成し、bashを忘れてください。
bashはLinuxで非常に一般的なシェルですが、bash自体には魔法のようなものはありません。 zshスクリプトを簡単に作成することもできます。#!
開始行は、スクリプトの実行に使用する必要があるプログラムを示します。
したがって、上記のオプション2を使用するには(おそらくそうします)、#!/bin/zsh
zsh(または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の性質によっては、より多くの参照を使用する必要があるかもしれませんし、必要ではないかもしれません。私は拡張変数の周りに常に「引用符」を置くことを好みます。ポジティブ場合には必要ありません(そのような場合にもしばしば必要です)。