linux 命令行翻译软件,Linux下命令行翻译

使用stardict固然方便,但是有时在命令行工作的时候来回切换就有些不是很爽了,于是动手调用有道的ap直接在命令行翻译了。

先写一个php脚本,调用有道的api,脚本很简单,主要用来获取数据用

#!/usr/bin/php

function trans($word)

{

$url="http://fanyi.youdao.com/openapi.do?keyfrom=quanwei9958&key=2020891949&type=data&doctype=text&version=1.0&q=" .urlencode($word);

$value=file_get_contents($url);

return $value;

}

print(trans($argv[1]));

?>

但是在调用的时候php总是先给我弹出一个warning ,php初始化时候的warning,我不想每次使用的时候将错误流重定向了,所有又使用bash来替我完成这一步

#!/bin/bash

answer=`./ts.php $1 2>/dev/null |grep result`

echo ${answer#result=}

这个shell脚本的主要作用就是将ts.php(就是上面php脚本)的错误流重定向到/dev/null里,避免直接输出到屏幕上。然后将没用的数据再过滤一下,直接显示我想要的结果。

将这两个脚本保存在同一目录下调用shell脚本来翻译

实例(php脚本文件名为ts.php  shell脚本为tran.sh)

quanwei@quanweiC:~/desktop$ ./tran.sh hi

quanwei@quanweiC:~/desktop$ ./tran.sh 你好

How are you

quanwei@quanweiC:~/desktop$ ./tran.sh 风扇

fan

因为没有数据库的支持,所以每次都是联网获取数据,如果以后使用过程中发现有必要加上数据库的时候就再加上数据库吧。

PS:@date  2014年 10月 06日 星期一 16:38:24 CST

已经找到了,查了下curl的发送get请求的时候可以使用urlencode,这样脚本就简单多了,而且完美翻译

语句也更精简了

url="http://fanyi.youdao.com/openapi.do?keyfrom=quanwei9958&key=2020891949&type=data&doctype=text&version=1.0&q=%1"

answer=`curl -G --data-urlencode $@ ${url} 2>/dev/null|grep result`

answer=${answer#result=}

echo $answer

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值