Вы ищете опцию mount -o allow_other
.
Это позволяет другим пользователям, кроме владельца fuse-процесса, использовать fs (и, следовательно, пользователю вашего smbd тоже).
Если вы не установили user_allow_other
в /etc/fuse.conf
, вы не сможете использовать эту опцию, если вы не root.
Что-то вроде этого работает с использованием xargs:
$ echo "750/12.5" | bc |xargs -I{} echo "{}+20" |bc
80
Или даже:
$ echo "750/12.5" | bc |echo "$(</dev/stdin)+20" |bc
80
А почему бы и нет:
$ bc <<<20+$(bc <<<"750/12.5")
80
В простейшем из вариантов это действительно добавляется к конвейерному потоку:
$ 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
Замечание о масштабе сверху по-прежнему актуально.
Я добился этого, используя sed
и заменив конец строки:
echo "my text" | sed 's/$/ more text/'
Возврат:
my text more text
Ваш пример:
echo "750/12.5" | bc | sed 's/$/\/24/' | bc