Я пытаюсь вычислить онемение Эйлера. но у меня проблемы с отображением результата. Вот что у меня есть:
#Using a switch an case
"Euler's Number")
szAnswer=$(zenity --info --text "Enter a number")
result = "(1+1/$szAnswer)^$szAnswer" | bc -l
zenity --info --text "Euler's Numb: $result"
Я могу ввести число и все, но когда дело доходит до выдачи мне результата, оно просто остается пустым. Любая помощь приветствуется.
Проблема в result = "(1+1/$szAnswer)^$szAnswer" | bc -l
линии. В нем говорится:
result
с параметрами =
и "(1+1/$szAnswer)^$szAnswer"
stdout
команды result
с командой bc
команды 118] stream Вероятно, вы задаетесь вопросом, почему result
является командой в этом случае. Это потому, что назначения переменных в сценариях оболочки выполняются без пробелов, разделяющих имя переменной и присвоенное значение. Вы также хотите отправить "(1+1/$szAnswer)^$szAnswer"
в stdin
команды bc -l
, поэтому вам нужно что-то, что способно записать в stdout
. у вас есть переменная result
, которой назначен выход конвейера echo "(1+1/${szAnswer})^${szAnswer}" | bc -l
. Структура $(...)
называется подстановкой команд и обычно используется, когда выходные данные команды необходимо повторно использовать вместо самой команды.