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