Я очень новичок в сценариях bash, и для моей первой попытки script я отправляю файлы в свой почтовый ящик профессора на том же сервере.
Код выглядит так:
#! /bin/bash
echo "Submit Lab$1? \c"
read choice
if [ $choice = "y" ]; then
   echo "Sending to Prof dropbox..."
   cp -r /path/to/lab$1 /path/to/dropbox
else
   echo "Submission terminated."
fi
Использование команды просто "$ submit 1" (1 - одно целое, соответствующее той лаборатории, которую я хочу отправить)
 bash script добавляет введенный аргумент (одно целое число) к необходимому имени файла (директории), а затем отправляет этот каталог в мой drop dropbox с помощью cp.
Больше для обучения, чем абсолютной необходимости, я хотел создать чистую подсказку, которая поймает любые ошибки cp (например, файл не существует) и сможет вывести собственное сообщение об ошибке.
Итак, в основном, что-то вроде:
echo "Submit lab$1?"
read choice
echo "Send to Prof dropbox"
cp -rv /path/to/lab$1 /path/to/dropbox
<catch any errors from cp>
if [ cp has errors ]
   echo "Submission failed."
else if [ cp has no errors ]
   echo "Submission successful."
And so on...
Я понимаю, что могу использовать подробный режим и что cp сам печатает ошибки, но, как было сказано ранее, я делаю это с целью изучения ошибки в bash и возможности сделать чистую приглашение.
Любая помощь будет оценена.
Спасибо!
  Также: У меня есть аналогичный script, который представляет лаборатории с моего ноутбука, используя scp. Предполагая, что у меня есть ответ на этот вопрос, могу ли я применить решения для scp точно так же?
  EDIT: Я не хочу, чтобы ошибки cp выводились в оболочку! Наиболее распространенной ошибкой, вероятно, будет "не может быть stat blah: нет такого файла или каталога". Я хотел бы поймать эту ошибку и просто сказать: "Submission failed." 
  EDIT # 2: Ответ jcollado правильный, проблема с моей стороны. Не закончил вложенный if-else с помощью правильного "fi." 
После исправления этого, он работал по назначению. Все еще нужно поймать выход ошибки, но я верю, что знаю, где мне нужно разобраться в этом самостоятельно, поэтому на этот вопрос мне ответил, насколько мне известно.
  ОКОНЧАТЕЛЬНЫЙ РЕДАКТ: А, черт возьми, перенаправление было так просто, я подумал, что поставлю решение здесь. Если вы используете Linux, просто добавьте "2>/dev/null" (если вы не хотите, чтобы сообщения об ошибках сохранялись в любом файле) после cp, чтобы сделать "cp -r /first/path /second/path 2>/dev/null" 
