有人可以向我解释为什么发出以下命令(在终端中)
<ul id="foldinglist" style="DISPLAY:none;" onClick="JavaScript: checkcontained();"><li><a href="JavaScript: chamaPagina('../../thisthat_redir.asp', '');">Demonst time</a></li></ul></li>
使用以下输出成功
which mkvirtualenv
echo "Return Value: $?"
mkvirtualenv test
deactivate
根据$Return Value: 1
Using base prefix '/usr'
New python executable in /home/xxxxxx/.virtualenvs/test/bin/python3
Not overwriting existing python script /home/xxxxxx/.virtualenvs/test/bin/python (you must use /home/xxxxxx/.virtualenvs/test/bin/python3)
Installing setuptools, pip, wheel...done.
(test)$
$
用户手册,它会返回并退出which
if
如果一个或多个指定的命令不存在或不可执行
因此,正在执行不存在或不可执行的1
命令。我认为这个问题的答案可以解释为什么当我在bash脚本中执行相同的代码行时,就像这样
mkvirtualenv
我改为获得以下输出
#!/bin/bash
which mkvirtualenv
echo "Return Value: $?"
mkvirtualenv test
deactivate
任何人都可以告诉我它为什么在脚本内部失败,因为它导致我的一个安装文件失败。
修改
根据this answer,只需在每个bash脚本中获取$ Return Value: 1
$ ./test.sh: line 5: mkvirtualenv: command not found
$ ./test.sh: line 6: deactivate: command not found
文件就可以解决这个问题。
答案 0 :(得分:1)
当您以/bin/bash
的身份运行脚本时,您没有使用用户上下文,而是使用了常规上下文(我缺乏适当的术语,请耐心等待),基本上您将无法访问可能碰巧已设置的所有ENV变量在bashrc / profilerc / like中。而且发生时virtualenvwrapper要求您设置一些东西。
如何解决?
将/bin/bash
更改为/usr/bin/env bash
,脚本的行为就像您在shell中编写此代码一样。