Назад | Перейти на главную страницу

Загрузка новых путей из каждой строки текстового файла с помощью eval не обновлять переменную $ PATH в bash

После установки множества путей в $ PATH был написан этот код для загрузки из текстового файла:

  #!/bin/bash
  cd ~
  echo '#++++++' >> ./pathlstbkp
  cat ./pathlst >> ./pathlstbkp
  while read pth; do 
    cmd='export PATH="'$pth':$PATH"'
    eval ${cmd}
  done < ./pathlst
  echo '' > ./pathlst 

Как вы видете описано здесь при использовании eval оцениваемая команда не запускается в подоболочке.
Но это не меняет переменную $ PATH.
Теперь я понял, что происходит что-то странное, это не работает на моем тестовом Ubuntu-LTS18-Minimal-X64, но работает на моей основной машине, Debian9.

Я удалил виртуальную машину и сделал то же самое снова, и она работает, вероятно, что-то было в среде