首页 > 解决方案 > 在脚本内执行命令时出错

问题描述

在 ubuntu 18.10 上,我遇到了一个简单脚本的问题。

如果我直接从 shell 执行此命令,它将起作用:

drush -y rsync @d8.live:web/sites/default/files @self:sites/default --delete -vv

如果我创建一个 .sh 脚本:

#!/bin/bash
drush -y rsync @d8.live:web/sites/default/files @self:sites/default --delete -vv

该脚本不起作用,该drush命令返回一个错误:

“--delete”选项不存在。

命令和脚本从同一目录和同一用户运行。

问题出在哪里?

PS:“ drush”是执行 docker-compose 命令的包装器

[编辑]

$ type -a drush
drush ha "drush --strict=0" come alias
drush è /usr/local/bin/drush


$ cat /usr/local/bin/drush
#!/bin/bash
cd $PWD
docker-compose -p example exec --user 82 php drush $@

标签: bash

解决方案


别名不会在脚本中扩展。如果您希望脚本包含--strict=0在命令行中,则必须在脚本中明确说明。


推荐阅读