bat脚本如何自动输入y_在Mac如何写一个相对自动的翻译脚本
生活随笔
收集整理的這篇文章主要介紹了
bat脚本如何自动输入y_在Mac如何写一个相对自动的翻译脚本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
近來使用的google翻譯的插件有些不穩定, 時靈時不靈的,無奈的使用百度翻譯了, 感覺體驗也不好, 就想自己寫一個翻譯的腳本。
整體思路簡單, 就是調用百度翻譯api再將結果呈現出來, 最后使用alias鏈接一下。
大致使用工具: md5(自帶)、httpie(需要安裝)、jq(解析json需要安裝),百度翻譯api需要注冊
1.百度翻譯api具體可以在百度翻譯開放平臺查看
百度翻譯開放平臺?api.fanyi.baidu.com分為通用翻譯API/定制化翻譯API/拍照翻譯SDK/語音翻譯SDK
使用通用翻譯api就可以了不收費, 使用前要創建app,開發文檔在:
百度翻譯開放平臺?api.fanyi.baidu.com2.安裝httpie、jq
brew install jq brew install httpie3、創建translate.sh文件寫腳本, 詳情如下
q=$1 # 接受參數, 有空格的字符串,記得用“” appid="20141916" # 百度翻譯app id, 注冊后創建app就有了 secretKey="134134134qCd0PO" # 百度翻譯app 密鑰url="http://api.fanyi.baidu.com/api/trans/vip/translate" # 請求的url fromLang="auto" #源語言選擇 toLang="zh" # 目標語言選擇 salt=$RANDOM # 隨機串 sign=$appid$q$salt$secretKey # 加密前拼接串 sign=$(md5 -s "$sign"| cut -d '=' -f2|sed 's/^[ ]*//g') # 獲取MD5串 # 請求 res=$(http $url appid==$appid q=="$q" from==$fromLang to==$toLang salt==$salt sign==$sign) res=$(echo $res|jq -r '.trans_result[0].dst') # 解析出值 # 打印結果 echo "n033[36m ********************************************************* 033[0m" echo "033[32m 翻譯結果 033[0m n" echo "033[32m $res 033[0m"4、做alias鏈接, 我使用了oh-my-zsh, 我這里直接編輯用戶目錄下的~/.zshrc文件, 加入
alias translate="sh /Users/lixiang/translate.sh"在source ~/.zshrc就可以使用了
但是實際上來回復制粘貼還是覺得麻煩, 想著減少操作, 想到了可以直接從剪切板里獲取, 又將邏輯代碼無限循環, 添加了等待和系統通知
last='123413241234' # 記錄上次翻譯 while true # 循環 do sleep 3 # 休息時間 q="$(pbpaste | head -n 1)" # 獲取剪切板第一條if [[ $q == $last ]]; # 判斷是否是上次翻譯過的 thencontinue fiecho $q appid="2fffffffff341916"secretKey="134134134qCd0PO" # 百度翻譯app 密鑰url="http://api.fanyi.baidu.com/api/trans/vip/translate"fromLang="auto"toLang="zh"salt=$RANDOMsign=$appid$q$salt$secretKeysign=$(md5 -s "$sign"| cut -d '=' -f2|sed 's/^[ ]*//g')res=$(http $url appid==$appid q=="$q" from==$fromLang to==$toLang salt==$salt sign==$sign)res=$(echo $res|jq -r '.trans_result[0].dst')echo "n033[36m ********************************************************* 033[0m"echo "033[32m 翻譯結果 033[0m n"echo "033[32m $res 033[0m"s="'"'display notification "'$res'" with title "翻譯結果"'"'"echo $s |xargs osascript -e #發送系統通知 last=$q done這樣我們只要將腳本運行一下, 想翻譯的文本復制剪切到剪切板就可以了
效果
還是有很多不足, 無法翻譯段落,只要剪切板里有東西就翻譯,每次翻譯都要復制或者剪切一下等等
但是已經能滿足我的需要了
總結
以上是生活随笔為你收集整理的bat脚本如何自动输入y_在Mac如何写一个相对自动的翻译脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php关闭当前页_php如何直接关闭页面
- 下一篇: 计算机组成原理算术运算实验报告,计算机组