问题:
说明:
我最近想在/ usr/bin/env周围编写一个包装器,因为我的CGI环境不允许我设置PATH变量,除了全局(当然这很糟糕!).
所以我想,"好的.让我们设置PREPENDPATH并在环绕包装器中设置PATH." 生成的脚本(此处称为env.1)如下所示:
#!/bin/bash
/usr/bin/env PATH=$PREPENDPATH:$PATH $*
Run Code Online (Sandbox Code Playgroud)
看起来它应该工作.在设置PREPENDPATH后,我检查了它们是如何反应的:
$ which /usr/bin/env python
/usr/bin/env
/usr/bin/python
$ which /usr/bin/env.1 python
/usr/bin/env
/home/pi/prepend/bin/python
Run Code Online (Sandbox Code Playgroud)
看起来绝对完美!到现在为止还挺好.但看看"Hello World!"会发生什么.
# Shebang is #!/usr/bin/env python
$ test-env.py
Hello World!
# Shebang is #!/usr/bin/env.1 python
$ test-env.1.py
Warning: unknown mime-type for "Hello World!" -- using "application/*"
Error: no such file "Hello World!"
Run Code Online (Sandbox Code Playgroud)
我想我错过了一些关于UNIX的基本内容.
我很失落,甚至看着原来的源代码后,ENV.它设置环境并启动程序(或者在我看来......).