繁体   English   中英

在 sudo 下运行时在脚本中断中对 ~ 的引用

[英]References to ~ in a script break when run under sudo

我对 sudo 以及它为什么这样做感到困惑

python3 -m venv ~/myvenv/env                       | works
sudo python3 -m venv ~/myvenv/env (command line)   | works

如果我然后将命令python3 -m venv ~/myvenv/env放入 bash 脚本script.sh那么我会得到以下结果。

sudo ./script.sh | fails
./script.sh      | works

我正在尝试在需要使用sudo启动的 bash 脚本中运行此命令,有人告诉我为什么 ti 不起作用?

当脚本通过sudo运行时,路径名中的~由根 shell 解释,因此它被替换为根的主目录,而不是您的主目录。

您应该将~/myvenv文件夹复制到根目录,或使用完整路径名指向此环境。

python3 -m venv ~myname/myvenv/env

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM