Bash не читает env?

Bash не читает env?

Контекст для этого заключается в том, что я хочу прочитать путь пользователя из xmonad, где путь изменяется в соответствии с тем, что указано в его .bashrc, если это применимо.

Вот что я нахожу странным: если я выполняю xmonad, bash -cl "env && echo $PATH"он возвращает , envкоторый включает в себя тот $PATH, который не совпадает с тем, что возвращает echo. (Мне нужно первое.)

Что дает?

И есть ли способ исправить это, кроме как анализировать envвывод?

решение1

Оболочка сначала подставляет значение $PATH из-за двойных кавычек. Я не уверен, что делает первый набор двойных кавычек, но попробуйте один из

'bash -cl "env && echo $PATH"'
"bash -cl 'env && echo $PATH'"

Теперь, вы пытаетесь извлечь только путь из env output? Если так, echoто это не тот инструмент. Вы бы хотелиenv | grep ^PATH=

Связанный контент