Определение источника сценария оболочки из Emacs

Да, выполните следующую команду:

shopt -s nullglob

это аннулирует соответствие, и никакая ошибка не будет инициирована.

  • если Вы хотите это поведение по умолчанию, включаете команду Ваш ~/.bashrc
  • если Вы хотите обнаружить пустой шарик в оболочке POSIX, попробовать

    for i in *.txt; do
      [ "$i" = '*.txt' ] && [ ! -e '*.txt' ] && continue
    done
    

См. http://mywiki.wooledge.org/NullGlob

4
23.05.2017, 15:40
3 ответа

Я не полагаю, что это возможно, с тех пор каждый раз, когда Вы вызываете подоболочку для определения источника сценария, Вы вызываете дочерний процесс от исходного процесса, где emacs приложения были запущены.

Экспорт переменных среды является улицей с односторонним движением, где только родитель может предоставить переменные любым дочерним процессам, но никакие дочерние процессы не могут управлять средой родителя.

Эксперимент

Я использую vim но то же должно относиться emacs. Файл примера к источнику.

$ more ~/vars.bash 
export VAR=somevalue
  1. Начальная Родительская среда, $VAR сброшен

    $ echo $VAR
    
    $
    
  2. Запуск vim. Затем вызовите подоболочку к источнику вышеупомянутый файл (:sh).

    # check variable
    $ echo $VAR
    
    $
    
    # source and re-check
    $ source ~/vars.bash
    $ echo $VAR
    somevalue
    
  3. Подоболочка выхода, возвратитесь к энергии. Затем вызовите другую подоболочку (:sh).

    $ exit
    
    ... back in vim, do another `:sh` ...
    
    # check variable
    $ echo $VAR
    
    $ 
    
4
27.01.2020, 20:54

Если все, в чем Вы нуждаетесь, должно сбросить LD_LIBRARY_PATH после загрузки Emacs, просто добавьте

(setenv "LD_LIBRARY_PATH")

кому: ~/.emacs или другой init файл.

Если необходимо подкачать назад и вперед, сохраните результат (getenv "LD_LIBRARY_PATH") в переменной сначала, таким образом, можно восстановить его позже.

1
27.01.2020, 20:54

Я нашел этот хороший кусок Emacs lisp, который использует diff для сравнения выходов команды export до и после сорсинга, а затем вызывает функцию setenv соответственно: https://gist.github.com/ffevotte/9345586

0
27.01.2020, 20:54

Теги

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