Files
alfred-preferences/Alfred.alfredpreferences/snippets/sh/bash_custom_prompt [4151EAD0-D3BF-43E2-9F6C-5B56BFA3291D].json
2026-03-26 09:22:38 +08:00

8 lines
2.7 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"alfredsnippet" : {
"snippet" : "bind -x '\"\\C-l\":clear'\n\nfunction convert_ip_address() {\n # 將命令列參數中的字串存入變數\n local ip_address=$1\n\n # 使用正規表示式判斷輸入字串是否為四個數字\n if [[ $ip_address =~ ^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$ ]]; then\n # 將字串中的每一個數字提取出來\n IFS='.' read -r num1 num2 num3 num4 <<< \"$ip_address\"\n\n # 判斷每一個數字是否介於 0 到 255 之間\n if [[ $num1 -ge 0 && $num1 -le 255 ]] && [[ $num2 -ge 0 && $num2 -le 255 ]] && [[ $num3 -ge 0 && $num3 -le 255 ]] && [[ $num4 -ge 0 && $num4 -le 255 ]]; then\n # 使用模式匹配將字串中的所有 \".\" 取代為 \"-\"\n ip_address=${ip_address\/\/.\/-}\n\n # 輸出新的字串 \"ip-${ip_address}\"\n echo \"ip-${ip_address}\"\n else\n # 如果輸入的字串不符合 IP 位址的格式,則輸出錯誤消息\n echo \"輸入的字串不是有效的 IP 位址!\"\n fi\n else\n # 如果輸入的字串不符合 IP 位址的格式,則輸出錯誤消息\n echo \"輸入的字串不是有效的 IP 位址!\"\n fi\n}\n\n# 定義一個名為 get_ip_address 的 Bash 函式\nfunction get_ip_address() {\n # 將傳入的第一個參數(interface_name)指定給局部變數 interface_name\n local interface_name=$1\n # 使用 ip addr show 指令檢索指定網路介面(interface_name)的 IP 位址,\n # 並使用 grep 和 awk 指令提取 inet 開頭的那行,\n # 再使用 cut 指令以斜線(\/)作為分隔符號提取 IP 位址部分,\n # 將這個 IP 位址存入局部變數 ip_address\n local ip_address=$(ip addr show \"$interface_name\" | grep -w 'inet' | awk '{print $2}' | cut -f1 -d'\/')\n # 輸出 IP 位址\n echo \"$ip_address\"\n}\n\n# 設定 PS1 環境變數,用於定義命令列提示符\n# 提示符包含使用者名稱 (\\u)\n# 並呼叫 convert_ip_address 函式並傳入 get_ip_address 函式的結果作為參數,\n# 同時使用 echo -n 指令將目前的工作目錄顯示為家目錄(~)的縮寫,\n# 最後以 \\$ 表示命令列提示符的結束\n# PS1='\\u@$(convert_ip_address \"$(get_ip_address \"eth0\")\") $(echo -n \"${PWD\/$HOME\/~}\") \\$ '\n\nif [ \"$(id -u)\" -eq 0 ]; then\n # For root user\n PS1='\\[\\033[01;31m\\]\\u\\[\\033[00m\\]@\\[\\033[01;97m\\]$(convert_ip_address \"$(get_ip_address \"eth0\")\")\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\nelse\n # For non-root users\n PS1='\\[\\033[01;32m\\]\\u\\[\\033[00m\\]@\\[\\033[01;97m\\]$(convert_ip_address \"$(get_ip_address \"eth0\")\")\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\nfi\n",
"uid" : "4151EAD0-D3BF-43E2-9F6C-5B56BFA3291D",
"name" : "bash_custom_prompt",
"keyword" : ""
}
}