Как выполнить команду после команды CP в bash? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь заставить скрипт выполняться при подключении USB с udev. Но у меня возникла проблема: запуск сценария вручную работает хорошо, как я и ожидал. Но когда я запускаю automati c (плагин USB), команда после cp не работает, и все файлы были успешно скопированы. Это мой scipt:

mount /dev/sda4 /media
echo "Mounted USB" > /dev/ttymxc0

cp *.mp4 /media
echo "Transfer successfully" > /dev/ttymxc0
umount /media

Передача успешно - не отображается и USB не отключен. Что мне делать?

Большое вам спасибо!

ПРИМЕЧАНИЕ : я пытаюсь с каким-нибудь файлом 20MB работает хорошо. Но когда я пытаюсь с 20 файлами, я получаю эту ошибку. Все файлы были скопированы, но другие команды после cp не выполняются.

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Выполните правильную обработку ошибок.

if mount /dev/sda4 /media
then
  echo "Mounted USB" > /dev/ttymxc0
else
  echo "Can not mount" >&2
  exit 1
fi

if cp *.mp4 /media
then
  echo "Transfer successfully" > /dev/ttymxc0
else
  echo "Can not copy" >&2
fi

if umount /media
then
  exit 0
else
  echo "Can not unmount" >&2
  exit 1
fi

0 голосов
/ 08 апреля 2020
mount /dev/sda4 /media
echo "Mounted USB" > /dev/ttymxc0

cp *.mp4 /media
echo "Transfer successfully" |  tee -a /dev/ttymxc0
umount /media

Со страницы man

tee - чтение со стандартного ввода и запись в стандартный вывод и файлы

Вы перенаправляете вывод в файл.

...