Традиционное решение, когда вы хотите прервать интерполяцию переменных, это использовать кавычки и eval
. Это не так элегантно, как решение для чистого Bash, но, очевидно, более переносимо.
for i in $(seq 0 100); do
eval 'echo $RANDOM % 10 | bc'
done
Это просто минимальный рефакторинг вашего исходного кода, и я публикую его только для полноты.