Bash Script Command Issue - PullRequest
       12

Bash Script Command Issue

0 голосов
/ 29 ноября 2010

I, когда я набираю следующую команду в cygwin:

bin/nutch index crawl/crawldb crawl/linkdb crawl/segment/* 

, тогда двоичный файл работает нормально.Когда я помещаю в скрипт bash точно такую ​​же строку:

#!/bin/bash/
bin/nutch index crawl/crawldb crawl/linkdb crawl/segment/*

, я получаю сообщение об ошибке, в котором говорится, что некоторые файлы не существуют.Это может быть характерно для Nutch, программы, которую я запускаю, но я думаю, что это больше связано с тем, как я вызываю команду в сценарии.Есть идеи о том, что не так и как это исправить?(да, я использую завершение табуляции)

РЕДАКТИРОВАТЬ:

Сценарий:

#!/bin/bash
/home/Dan/apache-nutch-1.2/bin/nutch index crawl/indexes crawl/crawldb crawl/linkdb crawl/segments/*

Я запускаю команду:

$ pwd
/home/Dan/apache-nutch-1.2
$ ./nutch.sh

ВыходЯ получаю это:

Indexer: starting at 2010-11-29 15:15:44
Indexer: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/C:/cygwin/home/Dan/apache-nutch-1.2/
/crawl_fetch
Input path does not exist: file:/C:/cygwin/home/Dan/apache-nutch-1.2/
/crawl_parse
Input path does not exist: file:/C:/cygwin/home/Dan/apache-nutch-1.2/
/parse_data
Input path does not exist: file:/C:/cygwin/home/Dan/apache-nutch-1.2/
/parse_text
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:190)
    at org.apache.hadoop.mapred.SequenceFileInputFormat.listStatus(SequenceFileInputFormat.java:44)
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:201)
    at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:810)
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:781)
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:730)
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1249)
    at org.apache.nutch.indexer.Indexer.index(Indexer.java:76)
    at org.apache.nutch.indexer.Indexer.run(Indexer.java:97)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.nutch.indexer.Indexer.main(Indexer.java:106)

С уважением, ~ DS

1 Ответ

1 голос
/ 29 ноября 2010

Две вещи:

  1. В начале скрипта после косой черты в конце сценария вы видите косую черту - удалите ее, она должна просто прочитать #!/bin/bash. Также дважды проверьте есть bash в /bin.
  2. Скрипт попытается выполнить Nutch из каталога bin в вашей папке. Поэтому, если вы находитесь в $HOME и предполагаете, что у вас есть путь $HOME/bin/nutch, то все будет в порядке. Но затем, если вы измените на /tmp, он потерпит неудачу, так как нет такого пути, как /tmp/bin/nutch. Вам лучше дать полный абсолютный путь к Nutch.
...