Bash: временно изменить среду

В дополнение к предыдущим ответам

echo "scale=2; 1.0150876" | bc

Возвращает

1.0150876

Добавить операции Math, чтобы получить только 2 десятичных числа - (NUMBER * 100) / 100

echo "scale=2; (1.0150876 * 100) / 100" | bc

Теперь возвращает

1.01
1
задан 5 May 2011 в 04:37

9 ответов

Сделайте это в подоболочке:

$ (. /path/to/envsetup.sh; runtool)

Если есть только несколько изменений в среде, вы можете сделать их в командной строке:

$ FOO=a BAR=b runtool # FOO and BAR will be set only for runtool

Вы также можете используйте реальную подоболочку, если вы ожидаете сделать несколько вещей:

$ bash
$ : this is a subshell
$ . /path/to/envsetup.sh
$ thing1
$ thing2
$ : ...
$ exit
$ : this is the original shell

Вы можете включить $SHLVL в свой $PS1 для последнего, так что проще сказать, что вы находитесь в подоболочка. Я также проверяю (нестандартную) переменную среды $PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 25 May 2018 в 21:29
  • 1
    ЧАС! вы могли бы объяснить этот $ (. /path/to/envsetup.sh; runtool). Благодаря! Постскриптум Мне нужны новые env vars, чтобы остаться на некоторое время, а затем вернуться к старой env. – pic11 5 May 2011 в 04:43
  • 2
    Включение чего-то в круглые скобки выполняется во временной подоболочке. Это как быстрая версия моего последнего примера, все сжатые в одну строку. ([F1] - это подсказка во всех приведенных выше примерах.) В вашем случае это звучит так, как будто вы хотите получить окончательную версию с полной подоболочкой. – geekosaur 5 May 2011 в 04:45
  • 3
    Как насчет: введите bash, затем установите env и после dode, используя выход типа dev-tool? – pic11 5 May 2011 в 04:48
  • 4
    Вот что делает последний пример. (Как я уже упоминал ранее, $ - это приглашение / $PS1, а не какой-либо специальный синтаксис оболочки). – geekosaur 5 May 2011 в 04:50
  • 5
    Понимаю. Большое спасибо! – pic11 5 May 2011 в 04:51

Сделайте это в подоболочке:

$ (. /path/to/envsetup.sh; runtool)

Если есть только несколько изменений в среде, вы можете сделать их в командной строке:

$ FOO=a BAR=b runtool # FOO and BAR will be set only for runtool

Вы также можете используйте реальную подоболочку, если вы ожидаете сделать несколько вещей:

$ bash $ : this is a subshell $ . /path/to/envsetup.sh $ thing1 $ thing2 $ : ... $ exit $ : this is the original shell

Вы можете включить $SHLVL в свой $PS1 для последнего, так что проще сказать, что вы находитесь в подоболочка. Я также проверяю (нестандартную) переменную среды $PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 25 July 2018 в 22:01

Сделайте это в подоболочке:

$ (. /path/to/envsetup.sh; runtool)

Если есть только несколько изменений в среде, вы можете сделать их в командной строке:

$ FOO=a BAR=b runtool # FOO and BAR will be set only for runtool

Вы также можете используйте реальную подоболочку, если вы ожидаете сделать несколько вещей:

$ bash $ : this is a subshell $ . /path/to/envsetup.sh $ thing1 $ thing2 $ : ... $ exit $ : this is the original shell

Вы можете включить $SHLVL в свой $PS1 для последнего, так что проще сказать, что вы находитесь в подоболочка. Я также проверяю (нестандартную) переменную среды $PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 26 July 2018 в 18:27

Сделайте это в подоболочке:

$ (. /path/to/envsetup.sh; runtool)

Если есть только несколько изменений в среде, вы можете сделать их в командной строке:

$ FOO=a BAR=b runtool # FOO and BAR will be set only for runtool

Вы также можете используйте реальную подоболочку, если вы ожидаете сделать несколько вещей:

$ bash $ : this is a subshell $ . /path/to/envsetup.sh $ thing1 $ thing2 $ : ... $ exit $ : this is the original shell

Вы можете включить $SHLVL в свой $PS1 для последнего, так что проще сказать, что вы находитесь в подоболочка. Я также проверяю (нестандартную) переменную среды $PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 2 August 2018 в 03:34

Сделайте это в подоболочке:

$ (. /path/to/envsetup.sh; runtool)

Если есть только несколько изменений в среде, вы можете сделать их в командной строке:

$ FOO=a BAR=b runtool # FOO and BAR will be set only for runtool

Вы также можете используйте реальную подоболочку, если вы ожидаете сделать несколько вещей:

$ bash $ : this is a subshell $ . /path/to/envsetup.sh $ thing1 $ thing2 $ : ... $ exit $ : this is the original shell

Вы можете включить $SHLVL в свой $PS1 для последнего, так что проще сказать, что вы находитесь в подоболочка. Я также проверяю (нестандартную) переменную среды $PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 4 August 2018 в 19:33

Сделайте это в подоболочке:

  $ (. /path/to/envsetup.sh; runtool)  

Если есть только несколько изменения среды, вы можете сделать их в командной строке:

  $ FOO = a BAR = b runtool # FOO и BAR будут установлены только для runtool  

Вы также можете использовать фактическую подоболочку, если вы ожидаете сделать несколько вещей:

  $ bash $: это подоболочка $.  /path/to/envsetup.sh $ thing1 $ thing2 $: ... $ exit $: это исходная оболочка  

Возможно, вы захотите включить $ SHLVL в вашем $ PS1 для последнего, так что проще сказать, что вы находитесь в подоболочке. Я также проверяю для (нестандартной) переменной среды $ PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 6 August 2018 в 03:41

Сделайте это в подоболочке:

  $ (. /path/to/envsetup.sh; runtool)  

Если есть только несколько изменения среды, вы можете сделать их в командной строке:

  $ FOO = a BAR = b runtool # FOO и BAR будут установлены только для runtool  

Вы также можете использовать фактическую подоболочку, если вы ожидаете сделать несколько вещей:

  $ bash $: это подоболочка $.  /path/to/envsetup.sh $ thing1 $ thing2 $: ... $ exit $: это исходная оболочка  

Возможно, вы захотите включить $ SHLVL в вашем $ PS1 для последнего, так что проще сказать, что вы находитесь в подоболочке. Я также проверяю для (нестандартной) переменной среды $ PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 7 August 2018 в 21:34

Сделайте это в подоболочке:

  $ (. /path/to/envsetup.sh; runtool)  

Если есть только несколько изменения среды, вы можете сделать их в командной строке:

  $ FOO = a BAR = b runtool # FOO и BAR будут установлены только для runtool  

Вы также можете использовать фактическую подоболочку, если вы ожидаете сделать несколько вещей:

  $ bash $: это подоболочка $.  /path/to/envsetup.sh $ thing1 $ thing2 $: ... $ exit $: это исходная оболочка  

Возможно, вы захотите включить $ SHLVL в вашем $ PS1 для последнего, так что проще сказать, что вы находитесь в подоболочке. Я также проверяю для (нестандартной) переменной среды $ PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 10 August 2018 в 09:49

Сделайте это в подоболочке:

  $ (. /path/to/envsetup.sh; runtool)  

Если есть только несколько изменения среды, вы можете сделать их в командной строке:

  $ FOO = a BAR = b runtool # FOO и BAR будут установлены только для runtool  

Вы также можете использовать фактическую подоболочку, если вы ожидаете сделать несколько вещей:

  $ bash $: это подоболочка $.  /path/to/envsetup.sh $ thing1 $ thing2 $: ... $ exit $: это исходная оболочка  

Возможно, вы захотите включить $ SHLVL в вашем $ PS1 для последнего, так что проще сказать, что вы находитесь в подоболочке. Я также проверяю для (нестандартной) переменной среды $ PSYS и печатаю ее, если она установлена, как своего рода «метка» для среды.

1
ответ дан 13 August 2018 в 16:05
  • 1
  • 2
    Включение чего-то в круглые скобки выполняется во временной подоболочке. Это как быстрая версия моего последнего примера, все сжатые в одну строку. ([D0] $ - это подсказка во всех вышеприведенных примерах.) В вашем случае это звучит так, как будто вы хотите получить окончательную версию с полной подоболочкой. – geekosaur 5 May 2011 в 04:45
  • 3
    Как насчет: введите bash, затем установите env и после dode, используя выход типа dev-tool? – pic11 5 May 2011 в 04:48
  • 4
    Вот что делает последний пример. (Как я упоминал ранее, $ является приглашением / $ PS1 , а не специальным синтаксисом оболочки). – geekosaur 5 May 2011 в 04:50
  • 5
    Понимаю. Большое спасибо! – pic11 5 May 2011 в 04:51

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

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