0

アプリケーションアイコンにファイルをドロップすると、ファイルを特定のフォルダーに移動する、automator で作成されたドロップレットがあります。

スクリプトは次のようになります。

for f in "$@"
do
    cp "$f" "volumes/testdrive/testfolder/$(basename "$f")" 
done

複数のファイルがスクリプトに入力されたかどうかを検出し、それらをzip関数でアーカイブして同じフォルダーに移動するコマンドを実行できるかどうか、および単一のファイルがドロップされた場合は指定されたフォルダーにファイルの通常のコピーを実行できるかどうか疑問に思っていました。

4

2 に答える 2

2

次のような条件式を使用します (構文が間違っている可能性があります)。

if [ $# > 1 ]
 then zip $@ > /path/to/location/foo.zip  # this line might need to be researched
 else cp $@ /path/to/location/`basename $@`
fi

選択したファイルごとに zip アーカイブを作成するという厳密な手順が必要になるため、for ループを使用してこれを行うことは望ましくありません。あなたが行っていたのがそれぞれを移動していた場合は、もちろんループを使用しますが、それらすべてを取得して圧縮するだけです

于 2011-06-28T03:20:42.310 に答える
0

$#スクリプトに渡される引数の数が含まれます。

于 2011-04-29T22:58:50.890 に答える