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 $@
解决方案
别名不会在脚本中扩展。如果您希望脚本包含--strict=0
在命令行中,则必须在脚本中明确说明。
推荐阅读
- php - 如何用 PHP 替换 SQL Server 显示的输出
- presto - Presto:如何填补空白并从前几行复制值
- react-native - React Native Expo 锁定屏幕方向但仍检测方向变化
- java - 如何将 postgresSql 查询重写为 Spring-data jpa 查询
- reactjs - 创建自定义钩子时反应 TypeError
- android - 使用 startActivityForResult() 时,我们是否还必须在后台保存资源清理的先前活动状态?
- python - 我是否需要刷新 sqlalchemy 连接对象才能将数据插入到新创建的表中?
- c# - 无效的入口点 c# http 客户端
- c# - 使用 Unity 在 hololens 键盘中返回选定的字母
- javascript - 使用 innerHTML 是否会阻止客户端 javascript 应用于新的 html?