Перенаправить stdout и / или stderr на путь в переменной

Измените разрешение должным образом chmmod u+r /home/blah/Videos/IMG_0006.MOV Сделайте это для всех файлов

Подключитесь к Интернету,

Откройте файл видеоплеером по умолчанию, он запросит плагины gstreamer1.o-libav и другие зависимости, установите их.

Теперь играйте снова!

1
18.11.2017, 17:33
1 ответ

Похоже, вы в итоге остались довольны ответом на этот вопрос, но я предлагаю другое.

#!/bin/bash
LOG=/path/to/file.log    
DEBUG=0 # 0 = True, 1 = False
OUTPUT=$(scp file1 host@remote 2>&1)

# do 'whatever' if scp command succeeds:
if [ $? -eq 0 ];
then
    echo "Success"
elif [[ DEBUG -eq 0 ]]
    # else log both stdout/stderr to ${LOG} file and user
    # DEBUG - Use tee to display ${LOG} contents efficiently
    printf "$OUTPUT" | tee $LOG
else
    # Send output to $LOG
    printf "$OUTPUT" >> $LOG
fi

По сути, захват STDIN/STDOUT в переменную, несмотря ни на что, затем в случае успеха делайте «что угодно», но в случае неудачи перенаправляйте STDIN/STDOUT на $LOG. Кроме того, с помощью флага $DEBUGвы можете teeотображать содержимое $OUTPUTи $LOGодновременно.

Также для целочисленного сравнения вам следует использовать -eqвместо =или==

1
27.01.2020, 23:44

Теги

Похожие вопросы