簡単なスクリプトを作成し、それを ~/.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}"
こちらもご覧くださいzenity
Nautilus スクリプトからの入力/出力を行うためのオプションをさらに指定するには、コマンドを使用します。以下に非常に基本的な例を示します。
#!/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"