Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: bash результат выполнения команды в перемменную  (Прочитано 3377 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
собственно вопрос:

как перенаправить результат выполнения команды в переменную, для последующей обработки.

команда:
rsync --progress -avz /home/user/images/ -e ssh user@192.168.0.2:/media/images
в консоле вывод такой:
Цитировать
rsync: change_dir#1 "/media/images/" failed: Permission denied (13)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(562) [Receiver=3.0.9]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]

если делаю так
LOG=`rsync --progress -avz /home/user/images/ -e ssh user@192.168.0.2:/media/images`
echo $LOG
то в переменной следующее:

Цитировать
sending incremental file list

sent 12 bytes  received 12 bytes  9.60 bytes/sec
total size is 0  speedup is 0.00

почему вывод в консоле и в переменной разный?
у меня можно спросить=)

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
rsync: change_dir#1 "/media/images/" failed: Permission denied (13)/media/images/ там root, а user нет (user@192.168.0.2)
папробуй root@192.168.0.2
Wars ~.o

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
я не спрашиваю про вываливающуюся ошибку, ошибка это всего лишь пример.

я спрашиваю - почему результат выполнения команды разный? запускаю же одинаково.

Пользователь решил продолжить мысль 15 Сентября 2013, 17:17:49:
LOG=$(rsync --progress -avz /home/user/images/ -e ssh user@192.168.0.2:/media/images/)
echo "  -- "
echo $LOG

Цитировать
user@192.168.0.2's password:
rsync: change_dir#1 "/media/images/" failed: Permission denied (13)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(562) [Receiver=3.0.9]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
  --
sending incremental file list
« Последнее редактирование: 15 Сентября 2013, 17:17:49 от kostrukov »
у меня можно спросить=)

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
cmd 2>&1

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Вот еще вариант нагуглил..

Цитировать
#!/bin/bash
# reassign-stdout.sh

LOGFILE=logfile.txt

exec 6>&1           # Связать дескр. #6 со stdout.
                    # Сохраняя stdout.

exec > $LOGFILE     # stdout замещается файлом "logfile.txt".

# ----------------------------------------------------------- #
# Весь вывод от команд, в данном блоке, записывается в файл $LOGFILE.

echo
rsync --progress -avz "/home/user/images/" -e ssh user@192.168.0.2:/media/images/
echo;

exec 1>&6 6>&-      # Восстановить stdout и закрыть дескр. #6.

exit 0

но результат тот же...
Цитировать
user@192.168.0.2's password:
rsync: change_dir#1 "/media/images/" failed: Permission denied (13)
rsync error: errors selecting input/output files, dirs (code 3) at main.c(562) [Receiver=3.0.9]
rsync: connection unexpectedly closed (9 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]


alexey@alex:~$ cat logfile.txt

sending incremental file list

Пользователь решил продолжить мысль 15 Сентября 2013, 17:56:34:
cmd 2>&1

Опс, ваша правда.

спасибо, то что нужно!
« Последнее редактирование: 15 Сентября 2013, 17:59:32 от kostrukov »
у меня можно спросить=)

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.