Попытка вычесть процент из переменной, предпочтительно с плавающей запятой (11,3%), иначе 12%
freespace=100
subtract=$(($freespace-$freespace*.113))
Обновление 1:
Вот объяснение того, что я пытаюсь на выполнение sh: я сокращаю фактическое свободное пространство на 11,3%. если файл, который я копирую, больше, чем вычитаемое свободное пространство, тогда сценарий предложит пользователю создать больше места. Команда b c возвращает плавающую точку. Чтобы это работало, вывод b c должен быть без десятичных знаков. Команда df -m выводит в мегабайтах и без десятичных знаков. Я не могу сравнить 18000 МБ с 120000,00 МБ (b c вывод) в bash.
source="/some/dir"
destination="/some/dir
freespace="$(df -m "${destination}" | tail -1 | awk '{print $4}')"
reduced_percentage=".113" # minus 11.3 percent of actual freespace
reduced_freespace=$(bc <<< "$freespace * (1-$reduced_percentage)")
source_size="$(du -sm "${files}" | tail -1 | awk '{print $1}')"
if [[ "${reduced_freespace}" -lt "${source_size}" ]] ; then
read -r -n 1 -p "you do not have enough free space, create free space to continue..."
elif [[ "${reduced_freespace}" -gt "${source_size}" ]] ; then
some commands
fi
done