使用 eval 从文本文件的每一行加载新路径,不会更新 bash 上的 $PATH 变量

使用 eval 从文本文件的每一行加载新路径,不会更新 bash 上的 $PATH 变量

必须在 $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 时,评估的命令不会在子 shell 上运行。
但它不会更改 $PATH 变量。
现在意识到发生了一些奇怪的事情,它在我的测试 Ubuntu-LTS18-Minimal-X64 上不起作用,但在我的主机 Debian9 上起作用。

答案1

我删除了虚拟机,然后再次执行了同样的操作,现在可以正常工作了,可能是环境出了问题

相关内容