在脚本中执行命令时出错

时间:2019-02-07 07:35:31

标签: bash

在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 $@

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

如此处所述:

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

drush命令位于PATH环境变量中。

现在,请确保/ usr / local / bin文件夹是您的`PATH变量的一部分,例如通过:

$ tr : "\n" <<<$PATH | grep usr.local.bin
/usr/local/bin