Можно ли получить десятичный вывод из деления в Bash?

В основном в Bash, что я пытаюсь сделать, это взять несколько секунд от пользователя и найти часы. Поэтому в основном, если пользователь вводит 35, выход должен быть 0,00972222.

Но bash дает мне ноль.

  • Проверка наличия нескольких файлов, данных по каналам
  • Почему 2 машины linux ведут себя по-другому с командой того же синтаксиса?
  • Зеркало LFTP включает в себя - включая другие каталоги, отличные от того, что я включил
  • bash. Почему тип -a выполняет «$ (printf 'a')» и можно ли вернуть исходный псевдоним?
  • Извлечение данных между двумя сопоставленными шаблонами в двоичном файле
  • Подавить новую строку, когда Awk'ing массив
  • Вот моя команда:

    echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $((sec/3600)) is the amount of hours " 

    Есть ли способ сделать это, чтобы он печатал 0,00972222, если я вхожу в 35.

    Благодаря!

  • / bin / sh: определение функции импорта ошибок для `some-function '
  • Как прекратить TCP-соединение, установленное самим bash?
  • Как назначить результат sed переменной
  • Должны ли операнды к утилите всегда появляться после всех параметров утилиты?
  • Выполнение арифметики с плавающей запятой в определениях переменных сценария оболочки
  • Когда я запускаю `./command.sh &`, фоновая задача приостанавливается. Как я могу продолжать работать?
  • One Solution collect form web for “Можно ли получить десятичный вывод из деления в Bash?”

    Попробуйте это

     echo $(echo "35/3600" | bc -l ) 

    поэтому ваша команда будет выглядеть так:

     echo "Enter the seconds you wish to convert to hours: " && read sec && echo " $(echo "$sec/3600" | bc -l ) is the amount of hours " 

    Чтобы контролировать количество напечатанных значимых цифр, используйте scale=N Например:

     $ echo "scale=3; 35/3600" | bc -l .009 

    Если вы также хотите напечатать ведущее 0 (что, как ни странно, bc будет нелегко ), вы можете подать номер на printf (который также может округлить его вверх / вниз для вас):

     $ printf '%.3f\n' $(echo "35/3600" | bc -l) 0.010 $ printf '%.4f\n' $(echo "35/3600" | bc -l) 0.0097 
    Linux и Unix - лучшая ОС в мире.