Оценка выражение и окружающий к трем десятичным числам

Независимо от того, что блокируется в slowprocess.sh мог быть фон так, чтобы он мог продолжиться даже после тайм-аута.

Также Вы смогли использовать a signal от timeout назад к Вашему main.sh. См. страницу справочника для timeout.

выборка от timeout информационная страница

`-s SIGNAL'
`--signal=SIGNAL'
     Send this SIGNAL to COMMAND on timeout, rather than the default
     `TERM' signal. SIGNAL may be a name like `HUP' or a number. Also
     see *Note Signal specifications::.

Необходимо было бы захватить для этого сигнала в main.sh.

Также timeout возвращает различные состояния для различных типов отказов. Вы смогли использовать их также:

   Exit status:

     124 if COMMAND times out
     125 if `timeout' itself fails
     126 if COMMAND is found but cannot be invoked
     127 if COMMAND cannot be found
     the exit status of COMMAND otherwise

Они присутствуют в переменной $?, после timeout ... выполнения строки.

3
09.12.2014, 01:50
4 ответа

Python, кажется, предпочитает:

$ echo 'print(round(' "5+50*3/20 + (19*2)/7" ', 3))' | python3
17.929
1
27.01.2020, 21:09

Вы можете упростить выражение из вашего комментария, используя конец "here string", удаляя оба echos:

 printf "%.3f\n" "$(bc -l <<< "$var")"

или даже

 printf "%.3f\n" "$(bc -l <<< "5+50*3/20 + (19*2)/7")"
3
27.01.2020, 21:09

Предполагая, что переменная $ EXP получает значение 17.92857142857143 в вашем скрипте оболочки, используйте следующую строку к раунду и распечатать ее:

Python2 -C 'Print Round (' $ Exp ', 3)'

0
27.01.2020, 21:09

Просто напишите это:

read exp
printf %.3f $(echo "$exp" | bc -l)
7
27.01.2020, 21:09

Теги

Похожие вопросы