Как отобразить значение с zenity?

Я пытаюсь вычислить онемение Эйлера. но у меня проблемы с отображением результата. Вот что у меня есть:

#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"

Я могу ввести число и все, но когда дело доходит до выдачи мне результата, оно просто остается пустым. Любая помощь приветствуется.

3
задан 2 May 2019 в 03:29

1 ответ

Проблема в 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. Структура $(...) называется подстановкой команд и обычно используется, когда выходные данные команды необходимо повторно использовать вместо самой команды.

0
ответ дан 2 May 2019 в 03:29

Другие вопросы по тегам:

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