Командные ошибки в файле, но отлично работает на оболочке - PullRequest
0 голосов
/ 20 октября 2011

Я пытаюсь запустить команду в сценарии, что-то вроде этого:

ssh user@host:/bin/echo > /home/path/file.log

Теперь, когда я запускаю эту команду в командной строке, она работает нормально, однако при вводе скрипта (shell или ruby) она выдает:
/ bin / sh: /home/path/*.log: такого файла или каталога нет

Я что-то упустил?

Спасибо!

Обновление:

Странно, что то же самое не выполняется сейчас даже на оболочке, когда я использую шпаклевку. Я проверил, что путь и файл существуют на удаленной машине, в которую встраивается ssh.

Ответы [ 2 ]

1 голос
/ 20 октября 2011

Вам нужно перебрать файлы.Если он работает из командной строки, то ваша интерактивная оболочка не является стандартной оболочкой.

for f in /home/path/*.log; do
     :>"$f"
done

Обратите внимание также на использование пустой команды;во многих снарядах вам вообще не нужна команда.Ваш echo ставит непривлекательную пустую строку в начале каждого файла.

Если вы пытаетесь запустить это удаленно, вам нужно будет заключить его в кавычки:

ssh user@remote 'for f in /home/path/*.log; do :>"$f"; done'
0 голосов
/ 20 октября 2011

Работает нормально, когда я кавычки: ssh user @ host: "/ bin / echo> /home/path/file.log"

...