Что не так с моим заданием cron?

Версия ответа Питера "найти", чтобы не получать поддиректории, но фактически выполнять все преобразования, выглядит так:

convert_if_no_mp4 () {
    wav_file=${1}
    mp4_file="${wav_file%.wav}.mp4"

    if [[ ! -e ${mp4_file} ]]; then
        ffmpeg -i "$wav_file" -c:a libfdk_aac -b:a 96k "$mp4_file"
    fi
}
export -f convert_if_no_mp4
dir=~/MUSIC
find ${dir} -type f -name "*.wav" -exec bash -c 'convert_if_no_mp4 "{}"' \;

Я подозреваю, что это то, что вы на самом деле хотите (фактически выполнить преобразование), но если вы действительно хотите работать со всеми поддиректориями по какой-то причине, вы можете начать с чего-то вроде этого:

do_stuff_with_subdir () {
    echo "doing something with \"${1}\""
}
export -f do_stuff_with_subdir
dir=~/MUSIC
find ${dir} -type d -exec bash -c 'do_stuff_with_subdir "{}"' \;
0
22.03.2018, 19:54
1 ответ

/root/tunnel.sh: line 2: ip: command not found

Ваш корневой профиль входа (один из профилей ~/.bash _, ~/.bash _логин или ~/.profile )устанавливает $PATHна включить /usr/sbin, в то время как ваш (не -сценарий входа )не устанавливает $PATHдля включения /usr/sbin.

Либо разверните $PATHв своем скрипте, либо используйте полные пути к программам, которые находятся в /usr/sbin.

PATH=$PATH:/usr/sbin

или

/usr/sbin/ip...
1
28.01.2020, 02:43

Теги

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