我創建了簡單的腳本並將其放入 ~/.local/share/nautilus/scripts/ (腳本位於帖子末尾)。
我可以透過右鍵單擊 Nautilus->Scripts->myScript.sh 來運行,到目前為止一切都很好。
問題是沒有顯示終端機視窗或任何輸出。我只收到正確填充了所選文件路徑的通知發送訊息,無需任何等待。
我希望會有一些終端機視窗列印“這是測試!”,然後“請輸入...”並等待 Enter 按鍵。最後,應該會收到通知發送。
我在這裡缺少什麼?
#!/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"