2016-02-27 4 views
1

Так что я работаю над попыткой написать shell-скрипты в linux, и у меня есть тот, который выходит и захватывает текущие котировки акций и хотел бы сохранить это в формате txt или json. Кажется, я могу запустить скрипт в терминале, но когда я установил его на crontab, он, похоже, терпит неудачу. Может кто-то пролить немного света, вот что я до сих пор.проблема с простым сценарием оболочки

Cron работа:

#!/usr/bin 
* * * * * PATH=$PATH:/usr/local/bin:/usr/bin && export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH && /home/mint/Desktop/BashScripts/Stocks/GetStocks.sh 

Shell скрипт:

#!/bin/bash 
* * * * * echo -e "[{'Ford':' $(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=aapl&f=l1') ', 'Square':' $(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=sq&f=l1') ' }]" > stocks.txt 

Ошибка:

/home/mint/Desktop/BashScripts/Stocks/GetStocks.sh: line 2: dead.letter: command not found 
+0

Первые 5 полей кронтаб это график выполнения команды. Зачем вы копируете их в сценарий? – Barmar

ответ

1

Потерять звёздочки перед echo. Они не принадлежат сценарию оболочки. Он интерпретирует их как подстановочные знаки и пытается выполнить первое совпадающее имя , которое равно dead.letter.

Кроме того, вместо отправки вывода на номер stocks.txt вы должны указать абсолютный путь , где он может писать как /home/jpavlov/stocks.txt. И вы, вероятно, захотите использовать >>, чтобы он добавлял вместо перезаписи.

+0

Я собираюсь дать вам попробовать прямо сейчас, спасибо – jpavlov

+0

Спасибо Tom !!!! Вот и все! Я очень ценю вашу помощь! – jpavlov

0
  • Cron работа: ваш код выглядит правильно.

  • Shell скрипт: вам нужно удалить (все первые 5 звездочками) * * * * * из этого Shell Script. Поскольку поля thess crontab равны , планируйте время выполнения команды. поэтому здесь возникают его проблемы.

So your final code would be following:

Cron работа:

#!/usr/bin 
* * * * * PATH=$PATH:/usr/local/bin:/usr/bin && export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH && /home/mint/Desktop/BashScripts/Stocks/GetStocks.sh 

Shell скрипт:

#!/bin/bash 
echo -e "[{'Ford':' $(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=aapl&f=l1') ', 'Square':' $(curl -s 'http://download.finance.yahoo.com/d/quotes.csv?s=sq&f=l1') ' }]" > stocks.txt 
Смежные вопросы