如何从另一个调用 ddev web 命令
How to call a ddev web command from another one
正如 中的回答 shell .ddev/commands/web
中的脚本非常棒。
是否也可以调用另一个命令?
喜欢
#!/bin/bash
# pull prod content to local
dump_remote_database
sync_down_files
import_database
这将(理论上)调用 . ddev/commands/web
中定义的三个独立命令
目前我得到
/mnt/ddev_config/commands/web/sync_down: line 5: dump_remote_database: command not found
/mnt/ddev_config/commands/web/sync_down: line 6: sync_down_files: command not found
/mnt/ddev_config/commands/web/sync_down: line 7: import_database: command not found
在主机命令上,您可以调用另一个 ddev 命令,但不能调用 web 或其他命令,因为它们在容器内执行,甚至知道 ddev 存在。
因此,使用主机命令,例如 ddev relaunch
in .ddev/commands/host/relaunch,您可以在其中重新启动调用 ddev launch
:
#!/bin/bash
## Description: Launch a browser with drupal /user
## Usage: relaunch [path]
## Example: "ddev relaunch"
ddev launch /user
尽管使用 Web 容器命令,您是在 Web 容器内部执行(它甚至不知道 ddev 的存在,它是它自己的小世界)。因此,在那种情况下,您可能需要 copy/paste 另一个 Web 命令的某些功能。
假设您不太喜欢内置 drush.example,您只需要一个 "drushuli" 命令。 drush.example 直接使用 drush,而您可以通过 drush uli
直接自己(在 Web 容器内)使用 drush。所以我将复制 .ddev/commands/drush.example 并提出:
#!/bin/bash
## Description: Run drush uli inside the web container
## Usage: drushuli [flags] [args]
## Example: "ddev drushuli"
drush uli
这是一个非常愚蠢的例子,但你明白了。使用您正在使用的环境中可用的工具。
正如 .ddev/commands/web
中的脚本非常棒。
是否也可以调用另一个命令? 喜欢
#!/bin/bash
# pull prod content to local
dump_remote_database
sync_down_files
import_database
这将(理论上)调用 . ddev/commands/web
目前我得到
/mnt/ddev_config/commands/web/sync_down: line 5: dump_remote_database: command not found
/mnt/ddev_config/commands/web/sync_down: line 6: sync_down_files: command not found
/mnt/ddev_config/commands/web/sync_down: line 7: import_database: command not found
在主机命令上,您可以调用另一个 ddev 命令,但不能调用 web 或其他命令,因为它们在容器内执行,甚至知道 ddev 存在。
因此,使用主机命令,例如 ddev relaunch
in .ddev/commands/host/relaunch,您可以在其中重新启动调用 ddev launch
:
#!/bin/bash
## Description: Launch a browser with drupal /user
## Usage: relaunch [path]
## Example: "ddev relaunch"
ddev launch /user
尽管使用 Web 容器命令,您是在 Web 容器内部执行(它甚至不知道 ddev 的存在,它是它自己的小世界)。因此,在那种情况下,您可能需要 copy/paste 另一个 Web 命令的某些功能。
假设您不太喜欢内置 drush.example,您只需要一个 "drushuli" 命令。 drush.example 直接使用 drush,而您可以通过 drush uli
直接自己(在 Web 容器内)使用 drush。所以我将复制 .ddev/commands/drush.example 并提出:
#!/bin/bash
## Description: Run drush uli inside the web container
## Usage: drushuli [flags] [args]
## Example: "ddev drushuli"
drush uli
这是一个非常愚蠢的例子,但你明白了。使用您正在使用的环境中可用的工具。