В простейшем из вариантов это действительно добавляется к конвейерному потоку:
$ echo "750/12.5" | { bc; echo "/24"; }
60
/24
Однако он имеет неожиданную новую строку, чтобы избежать необходимости использовать tr:
$ echo "750/12.5" | { bc | tr -d '\n' ; echo "/24"; }
60/24
Или, учитывая тот факт, что расширение команды удаляет завершающие символы новой строки:
$ printf '%s' $( echo "750/12.5" | bc ); echo "/24"
60/24
Но, вероятно, правильный способ должен быть похож на:
$ echo "$(echo "750/12.5" | bc )/24"
60/24
Который, для использования в bc, можно было бы записать так:
$ bc <<<"$(bc <<<"750/12.5")/24"
2
Который, чтобы получить разумная точность чисел с плавающей запятой должна быть примерно такой:
$ bc <<<"scale=10;$(bc <<<"scale=5;750/12.5")/24"
2.5000000000
Обратите внимание на необходимость двух масштабов, поскольку есть два экземпляра bc.
Конечно, для одного экземпляра bc требуется только одна шкала:
$ bc <<<"scale=5;750/12.5/24"
Фактически, вы должны думать о строке:
$ a=$(echo "750/12.5") # capture first string.
$ echo "$a/24" | bc # extend the string
2
Замечание о масштабе сверху по-прежнему актуально.
я сделалxrandr --output <output> --scale 0.8x0.8
и было размыто, потом потом
xrandr --output <output> --scale 1x1
, и он был намного лучшего качества и уменьшен в масштабе. Теперь у меня есть обе строки в моем сценарии запуска, и он отлично работает с интервалом сна в 10 секунд.
Возможно, это связано с моим монитором или ОС (elementary ), потому что это похоже на странный трюк, который не должен работать так, как работает.