Этот сценарий должен выполнить эту работу:
#!/usr/bin/env bash
for i in ./*.mp3; do
mplayer "${i}"
printf '%s\n' "${i}"
read -p 'What to do?: ' -r ans
if [[ "${ans}" == 'rm' ]]; then
rm "${i}"
elif [[ "${ans}" == 'mv' ]]; then
mv "${i}" 'tmp'
fi
done
PS: Предполагается, что каталог tmp
уже существует и находится в вашем текущем рабочем каталоге. Если он находится в другом месте или вы ссылались на каталог /tmp
, просто измените эту часть кода.
Если TYPE
не установлено, пусто или полностью состоит из пробелов, ваше утверждение сводится к if [ = "hour" ]
, что является синтаксической ошибкой.
Поскольку вы используете sh
, общим обходным решением для этого является префикс:if [ "x$TYPE" = "xhour" ]
Вы не можете просто использовать слабые кавычки, потому что ""
также разрешается в if [ = "hour" ]
; по крайней мере с sh
. bash
при использовании более надежного синтаксиса двойной -фигурной скобки (e. г.if [[ "$TYPE" = "hour" ]]
)поступит правильно, не прибегая к префиксам или суффиксам.