更改解释器 bash 脚本

发布于 2024-11-13 06:41:29 字数 200 浏览 4 评论 0原文

有什么方法可以在 bash 脚本中间更改解释器

例如从以下内容开始:

#!/bin/bash

稍后更改为:

#!$drush_location

原因是因为我想使用 bash 来解析 drush 的位置,然后将该 var 作为解释器传入

Is there any way for changing the interpreter in the middle of a bash script

For instance start with:

#!/bin/bash

Later change to:

#!$drush_location

The reason is because I want to use bash to resolve the location of drush using bash and then pass that var in as an interpreter

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎夜雨 2024-11-20 06:41:29

您需要编写两个脚本并使用第一个 (bash) 启动第二个 (drush)。

还有其他方法可以实现此目的,但它们基本上都是执行上述操作的奇特方法。例如,您可以使用here-doc将第一个脚本中作为字符串包含的脚本填充到drush上的stdin中并让它执行,或者甚至编写一个临时文件并将其作为脚本执行,但是您必须运行两个以某种方式进行处理,您无法即时更改解释器。

实际上,要做的就是修复你的环境,以便它能够找到drush。然后你可以使用:

#!/usr/bin/env drush

作为你的 drush 脚本的 hashbang。如果您的系统无法找到它,请修复您的搜索路径,直到可以找到为止!

You will need to write two scripts and use the first (bash) one to launch the second (drush).

There are other ways to accomplish this, but they are all basically fancy ways of doing the above. For example you could use a here-doc to cram a script contained as a string in your first script into stdin on drush and have it execute that, or even write a temporary file and execute that as a script, but you have to run two processes somehow, you can't change the interpreter on the fly.

Really the thing to do would be to fix your environment so that it can find drush. Then you can use:

#!/usr/bin/env drush

As the hashbang for your drush script. If your system evn can't find it, then fix your search paths until it can!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文