Я пытаюсь преобразовать эту строку программы C для избиения сценария: C:
bin = bin+d*10^n-1;
мусорное ведро, d, n объявляются как международный удар:
bin=`exp $bin+$d\*10^n-1`
но это неправильно
Bash имеет встроенную функциональность для арифметических выражений. Функцию называют "Арифметическим Расширением". Страница справочника удара содержит больше информации.
Синтаксис является $ ((выражение)). В Вашем случае сценарий мог бы содержать следующее.
#!/bin/bash
set -x
bin=1
d=2
n=3
echo $((${bin} + ${d}*10^${n}-1))
Приоритет оператора напоминает C, но не является точно тем же, поскольку Bash и C поддерживают различные операторы. Вот полезная ссылка: https://www.gnu.org/software/bash/manual/html_node/Shell-Arithmetic.html#Shell-Arithmetic
Вышеупомянутое является соответствующим только потому, что операнды являются C ints. Арифметическое Расширение не поддерживает арифметику с плавающей точкой.