shell 脚本中的 Scrapy 命令在从 java 调用时未执行
Scrapy command in shell script not executing when called from java
我有以下 shell 调用 scrapy
的脚本
#!/bin/bash
export PATH=usr/local/bin/scrapy:$PATH
scrapy crawl flipkart -a key="" -o ""flipkart.xml
scrapy crawl myntra -a key="" -o ""myntra.xml
scrapy crawl jabong -a key="" -o ""jabong.xml
echo $PATH
在调用此脚本文件的 java 程序中,错误流显示 scrapy: command not found
我在 bash_profile 文件中添加了 scrapy 路径,在执行 PATH 时我得到了结果
renny$ echo $PATH
/usr/local/bin/scrapy:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
我在运行脚本文件中使用了以下代码
String command = "/Users/renny/Documents/WorkSpaces/Scrapy/tutorial/tutorial/crawls.sh";
String[] cmd = new String[]{"/bin/sh", command,key,formattedDate};
//Process p = Runtime.getRuntime().exec(cmd);
ProcessBuilder p = new ProcessBuilder(cmd);
Process p2 = p.start();
int code = p2.waitFor();
如果我直接执行 shell 脚本就可以正常工作。
您的 'PATH' 声明中缺少正斜杠,路径应该指向目录,而不是程序
你有
export PATH=usr/local/bin/scrapy:$PATH
应该是
export PATH=/usr/local/bin:$PATH
我收录了
cd /Users/renny/Documents/WorkSpaces/Scrapy/tutorial
export PATH=usr/local/bin/scrapy:$PATH
export PATH=/usr/local/bin:$PATH
现在它似乎工作正常但不确定为什么但是 运行 来自 java 的脚本我需要通过文件将它们添加到路径但是 运行 脚本直接文件就不需要把这些PATH写到文件里了。
另外scrapy好像需要在项目目录下所以把cd加到项目路径下
我有以下 shell 调用 scrapy
的脚本#!/bin/bash
export PATH=usr/local/bin/scrapy:$PATH
scrapy crawl flipkart -a key="" -o ""flipkart.xml
scrapy crawl myntra -a key="" -o ""myntra.xml
scrapy crawl jabong -a key="" -o ""jabong.xml
echo $PATH
在调用此脚本文件的 java 程序中,错误流显示 scrapy: command not found
我在 bash_profile 文件中添加了 scrapy 路径,在执行 PATH 时我得到了结果
renny$ echo $PATH
/usr/local/bin/scrapy:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
我在运行脚本文件中使用了以下代码
String command = "/Users/renny/Documents/WorkSpaces/Scrapy/tutorial/tutorial/crawls.sh";
String[] cmd = new String[]{"/bin/sh", command,key,formattedDate};
//Process p = Runtime.getRuntime().exec(cmd);
ProcessBuilder p = new ProcessBuilder(cmd);
Process p2 = p.start();
int code = p2.waitFor();
如果我直接执行 shell 脚本就可以正常工作。
您的 'PATH' 声明中缺少正斜杠,路径应该指向目录,而不是程序
你有
export PATH=usr/local/bin/scrapy:$PATH
应该是
export PATH=/usr/local/bin:$PATH
我收录了
cd /Users/renny/Documents/WorkSpaces/Scrapy/tutorial
export PATH=usr/local/bin/scrapy:$PATH
export PATH=/usr/local/bin:$PATH
现在它似乎工作正常但不确定为什么但是 运行 来自 java 的脚本我需要通过文件将它们添加到路径但是 运行 脚本直接文件就不需要把这些PATH写到文件里了。
另外scrapy好像需要在项目目录下所以把cd加到项目路径下