~/.local/share/nautilus/scripts/ の Nautilus スクリプトはターミナル ウィンドウや出力を表示しません

~/.local/share/nautilus/scripts/ の Nautilus スクリプトはターミナル ウィンドウや出力を表示しません

簡単なスクリプトを作成し、それを ~/.local/share/nautilus/scripts/ に配置しました (スクリプトは投稿の最後にあります)。

Nautilus->Scripts->myScript.sh を右クリックすると実行できます。これまでのところすべて正常です。

問題は、ターミナル ウィンドウが表示されず、出力も何もないことです。待機せずに、選択したファイルへのパスが適切に入力された通知送信メッセージのみを受信します。

ターミナル ウィンドウに「これはテストです!」と表示され、次に「入力してください...」と表示され、Enter キーが押されるのを待つ状態になると思います。最後に、この後、notify-send が受信されるはずです。

ここで何が欠けているのでしょうか?

#!/usr/bin/bash

echo "THIS IS TEST!"
read -r -p "PLEASE ENTER TO EXIT! Waiting..."

notify-send "COMPLETED!" "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} ___ ${NAUTILUS_SCRIPT_SELECTED_URIS} ___ ${NAUTILUS_SCRIPT_CURRENT_URI}"

答え1

ターミナル ウィンドウは自動的に作成されません。自分で作成する必要があります。スクリプトを次のように変更しました。

#!/usr/bin/bash

function commands-to-be-run {
  echo "THIS IS TEST!"
  read -r -p "PLEASE ENTER TO EXIT! Waiting..."
}

export -f commands-to-be-run

gnome-terminal --title="Testing..." --wait -- bash -c commands-to-be-run

notify-send "COMPLETED!" "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} ___ ${NAUTILUS_SCRIPT_SELECTED_URIS} ___ ${NAUTILUS_SCRIPT_CURRENT_URI}"

私はあなたのすべてのステートメント(ターミナル内で実行されるコマンド)をbash 関数そしてexport子プロセスで使用できるように編集しました。

次に、gnome-terminal --title="Testing..."コマンドを使用して、適切なタイトルのターミナル ウィンドウを作成しました。 このオプションは、オプションの後に実行されるコマンドが完了するまで、コマンドが戻らないように--wait強制します。gnome-terminal--

ぜひ読んでくださいman gnome-terminalページその他のオプションについては、こちらをご覧ください。


ニーズに応じて、短縮バージョンは次のようになります。

#!/usr/bin/bash
gnome-terminal --title="Testing..." --wait -- bash -c '
  echo "THIS IS TEST!" ;
  read -r -p "PLEASE ENTER TO EXIT! Waiting..."
'
notify-send "COMPLETED!" "${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS} ___ ${NAUTILUS_SCRIPT_SELECTED_URIS} ___ ${NAUTILUS_SCRIPT_CURRENT_URI}"

こちらもご覧くださいzenityNautilus スクリプトからの入力/出力を行うためのオプションをさらに指定するには、コマンドを使用します。以下に非常に基本的な例を示します。

#!/bin/bash
echo -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | sed -z 's/.$//' | xsel -b -i
zenity --info --no-wrap --no-markup --title="File name(s) copied to Clipboard:" --text="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

関連情報