Nautilusスクリプトは、選択した複数のファイルに対して1つの操作を実行しますか?

Nautilusスクリプトは、選択した複数のファイルに対して1つの操作を実行しますか?

単一のタスクを実行するために選択した複数のファイルを入力として使用するように変更したいノーチラススクリプトがあります。誰かがこれを達成する方法を説明できますか?

私はこれを試しましたが、command $NAUTILUS_SCRIPT_SELECTED_FILE_PATHSスクリプトがすることは2つの別々のタスクで実行されるcommand file1ことです。command file2これは私のユースケースでは機能しません。代わりにスクリプトを実行する必要がありますcommand file1 file2

align_image_stack重要な場合は、2つ以上の画像ファイルを入力として要求するコマンドと一緒に使用します。エラーメッセージを表示するために端末でNautilusを実行すると、次のメッセージが表示されます。"align_image_stack:少なくとも2つのファイルを指定する必要があります。"。以下のようにいくつかのコマンドをテストしましたが、すべて同じエラーメッセージが生成されます。問題は、変数が$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS改行を生成することですが、選択したファイルパスをキャプチャする方法がわかりません。

align_image_stack "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
align_image_stack $(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
align_image_stack printf("$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
echo -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | xargs -I align_image_stack "{}"

ベストアンサー1

私はそれを動作させませんでしたが、$NAUTILUS_SCRIPT_SELECTED_FILE_PATHSこれは動作します:

command $(echo -n "$@")

私はこれがコマンドの置き換えだと思います。 「$@」文字は、選択したすべてのファイルをコマンドへの入力として一緒に挿入し、-nパラメーターを使用してエコーがリストされた後の改行を抑制します。

括弧で囲まれた一連の写真を並べ替えて混在させる必要がある場合は、テスト済みでうまく機能する次のNautilusスクリプトを使用できます。完成した製品をデスクトップに出力し(ファイル名は現在時刻)、次の手順を実行してすべての一時ファイルを消去します。

#!/bin/bash
align_image_stack -a BATCH -C $(echo -n "$@") && enfuse -o ~/Desktop/$(date '+%Y-%m-%d-%T').tif BATCH*.tif && rm BATCH*.tif

おすすめ記事