使用" sh"打开可执行文件在Ubuntu下

时间:2015-09-17 13:40:37

标签: linux bash shell ubuntu-14.04

我正在使用Sonar的API(http://javadocs.sonarsource.org/4.5/apidocs/org/sonar/api/utils/command/Command.html),它说该函数执行命令"命令将用sh可执行文件执行。"
我想要做的只是使用

  

tslint path / to / my / code.ts

在终端(因为这工作)。但是这该死的方法可以用#34; sh"所以它看起来像这样

  

sh tslint path / to / my / code.ts

并给我错误

  

sh:0:无法打开tslint

我如何解决这个问题才能执行" tslint"即使命令以sh?

开头

感谢您的帮助

编辑:因为你们中的许多人都问过生成这个命令的java代码(不是我的,它来自一个开源项目):

Command command = Command.create("tslint");  
command.addArgument("--config " + configFile + " --format json " + file.trim()); 

最终编辑:
工作版:

Command command = Command.create("node");  
        command.addArgument(pathToTsLint);  
        command.addArgument("--format");  
        command.addArgument("json");  
        command.addArgument("--config");  
        command.addArgument(configFile);  
        command.addArgument(file.trim());  
        command.setNewShell(false);

1 个答案:

答案 0 :(得分:0)

使用which tslint文件的完整路径检查终端。 从终端你可以用

完成所有操作

/bin/sh -c "/path/to/tslint /path/to/my/code.ts"

使用Sonar API,它是:

Command command = Comman.create('/full/path/name/to/tslint');
command.addArgument("--config " + configFile + " --format json " + file.trim()); 

您不需要-c命令中的sh参数,但您必须使用tslint命令的绝对路径。