Просто командой cut
:
echo "pandi/sha/Dev/bin/boot" | cut -d'/' -f2-
sha/Dev/bin/boot
-d'/'
-разделитель полей
-f2-
-диапазон полей для вывода(-f<from>-<to>
; в нашем случае :от 2
до последнего)
Один из вариантов — сделать рассылку в фоновом режиме.:
for afolder in "$dir"/dothis*; do
nohup sh -c '
outfile=$(mktemp)
if nice COMMAND "$1" >"$outfile" 2>&1; then
success_or_fail="success"
else
success_or_fail="failure"
fi
tail "$outfile" |
mail -s "job done ($success_or_fail)" myemail@here.com
rm "$outfile"' sh "$afolder" &
done
Это делает тот же цикл, что и вы, но затем запускает дочерний скрипт, работающий под nohup
. Этот скрипт принимает текущее значение $afolder
в качестве первого аргумента командной строки и запускает команду в операторе if
. Он устанавливает success_or_fail
соответствующим образом в зависимости от результата команды, а затем отправляет электронное письмо.
Весь вывод команды перенаправляется во временный файл, который затемtail
-используется для электронной почты и удаляется при выходе из оболочки.