eclipse下使用cygwin直接运行shell文件配置

简介:
最近事情挺多的,好久不写博客了。今天在看hadoop的时候,突然心血来潮,想在windows的eclipse下跑hadoop的shell脚本,这样就方便多了,查了一个晚上,终于看似找到了,泪奔。记录&分享一下,如果有人也有这样的需求或者备以后自己看。

当然在windows下跑shell当然是要先安装cygwin了,关于这个cygwin的安装就不在这里说了,另外关于如何在cygwin配置hadoop貌似已经有人写过了,也不在这里介绍了,有兴趣的童鞋可以参考: http://blog.csdn.net/yanical/article/details/4474830

所以本文只关注如何将cygwin引入到eclipse中以运行shell脚本。
在eclipse中,通过External Tools方式来支持嵌入包括cygwin在内的其他工具,以下是这些步骤:
1. eclipse->Run->External Tools->External Tools Configuration....
2. 在配置页面中,那么可以按你的爱好随便指定,如cywin_hadoop,location是指externl tools的地址,这里就是解释shell的bash,简单一点的,可以直接指定:C:\cygwin\bin\bash.exe,这样可以执行一些简单的命令,但是如果要引用其他解释器,那就有问题了,比如执行hadoop的shell文件,就会发现dirname命令找不到的提示。所以一种解决方法是自己写一个bat脚本,把需要用到的目录都写道PATH中,比如我编写了如下的bat脚本(当然如果需要其他更多其他目录的命令,可以往PATH中添加):
@echo off
rem 上一行关闭命令回显

PATH
= C:\cygwin\bin\; % PATH %

bash 
% 1

rem 开启命令回显
echo on
然后把location指向该文件。
3. Work Directory是指工作目录,可以指定你脚本所在目录,如我的hadoop脚本在scripts下,那么我就指定了:${workspace_loc:/hadoop/scripts}
4. Arguments我指定了当前的文件名:${resource_name},如果在实际运行hadoop脚本时参数可以往后再添加。

这样就配置好了,直接点击Run就可以运行了。这样感觉以后开发就方便多了。

另外,还发现了一个非常有趣的东东,一同记录分享。
为了在windows下点击shell脚本文件就可以直接运行shell脚本,有人想出了如下命令(出自: http://stackoverflow.com/questions/105075/how-can-i-associate-sh-files-with-cygwin ):
assoc .sh = bashscript

ftype bashscript
= C:\cygwin\bin\bash.exe  -- login  - - ' cd "$(dirname "$(cygpath -u "%1")")"; bash "$(cygpath -u "%1")" '
即设置*.sh文件的默认执行软件是bash,如果在win7下需要用管理员身份打开cmd,然后运行这两个指令。可惜我好像木有运行成功,没有仔细找原因,不过我尝试了一下命令确实可以运行:
assoc .sh = bashscript
ftype bashscript
= C:\cygwin\bin\bash.exe  % 1
感觉挺好玩的。。。。

相关文章
|
4月前
|
Shell
Shell 文件包含
10月更文挑战第5天
48 4
|
5月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Java Android开发
Eclipse Debug 配置
Eclipse Debug 配置
37 3
|
3月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
51 2
|
3月前
|
Java Android开发
Eclipse 运行配置(Run Configuration)
Eclipse 运行配置(Run Configuration)
111 1
|
4月前
|
Java Android开发 开发者
【编程进阶知识】精细调控:掌握Eclipse JVM参数配置的艺术
本文详细介绍了如何在Eclipse中配置JVM参数,包括内存的初始和最大值设置。通过具体步骤和截图演示,帮助开发者掌握JVM参数的精细调控,以适应不同的开发和测试需求。
72 1
|
6月前
|
Shell Linux 网络安全
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
在Linux中,如何利用Shell把10台主机的当前时间写到一个文件里边?
|
6月前
|
Ubuntu Linux Shell
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
|
5月前
|
安全 Shell Linux
从命令行界面运行交互式PHP Shell
从命令行界面运行交互式PHP Shell
|
6月前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?

推荐镜像

更多