Да, выполните следующую команду:
shopt -s nullglob
это аннулирует соответствие, и никакая ошибка не будет инициирована.
~/.bashrc
если Вы хотите обнаружить пустой шарик в оболочке POSIX, попробовать
for i in *.txt; do
[ "$i" = '*.txt' ] && [ ! -e '*.txt' ] && continue
done
Я не полагаю, что это возможно, с тех пор каждый раз, когда Вы вызываете подоболочку для определения источника сценария, Вы вызываете дочерний процесс от исходного процесса, где emacs приложения были запущены.
Экспорт переменных среды является улицей с односторонним движением, где только родитель может предоставить переменные любым дочерним процессам, но никакие дочерние процессы не могут управлять средой родителя.
Я использую vim
но то же должно относиться emacs
. Файл примера к источнику.
$ more ~/vars.bash
export VAR=somevalue
Начальная Родительская среда, $VAR
сброшен
$ echo $VAR
$
Запуск vim
. Затем вызовите подоболочку к источнику вышеупомянутый файл (:sh
).
# check variable
$ echo $VAR
$
# source and re-check
$ source ~/vars.bash
$ echo $VAR
somevalue
Подоболочка выхода, возвратитесь к энергии. Затем вызовите другую подоболочку (:sh
).
$ exit
... back in vim, do another `:sh` ...
# check variable
$ echo $VAR
$
Если все, в чем Вы нуждаетесь, должно сбросить LD_LIBRARY_PATH после загрузки Emacs, просто добавьте
(setenv "LD_LIBRARY_PATH")
кому: ~/.emacs
или другой init файл.
Если необходимо подкачать назад и вперед, сохраните результат (getenv "LD_LIBRARY_PATH")
в переменной сначала, таким образом, можно восстановить его позже.
Я нашел этот хороший кусок Emacs lisp, который использует diff
для сравнения выходов команды export
до и после сорсинга, а затем вызывает функцию setenv
соответственно:
https://gist.github.com/ffevotte/9345586