Unix Bash脚本导致git clone无法正常工作

问题描述 投票:1回答:3

我有一个bash脚本(script1.sh),我执行git克隆。然后,从该存储库,我运行另一个运行正常的脚本(script2.sh)。我运行script2.sh很好,但是git repo不存在。任何文件夹都不存在。如果我在命令行上运行git clone,它就克隆它就好了。为什么我的脚本没有git克隆我的repo正确?

我如何运行第一个脚本。

sudo bash script1.sh

script1.是

cd /home/ubuntu
git clone http://mygit-thing.com/myrepository.git localfolder
#run script from the repo
sudo bash localfolder/script2.sh

script2.是

~ Some unrelated unix commands

注意:我试过查看/ home / ubuntu文件夹但找不到它。它也不是“隐藏”文件。

linux git bash shell unix
3个回答
1
投票

这可以解决你的问题,取代你的script1.sh

home=/home/ubuntu
folder=$home/localfolder
git clone http://mygit-thing.com/myrepository.git $folder
#run script from the repo
bash $folder/script2.sh

如果它不起作用,可能你不能在$home上写因为你当前的用户权限或因为你的fs是只读的你可以通过执行没有选项的mount来检查它,它会列出所有已安装的fs。

另一点,不建议在脚本内部进行sudoing。目前你基本上是sudo sudo。如果你想确保正确的用户正在执行你的脚本,你最好检查当前的id而不是嵌套的sudo。


1
投票

正如@jibe建议的那样,你从sudo调用bash,它将从不同的位置调用bash。提供本地git存储库的完整路径。


1
投票

我在编写蓝绿色部署脚本时遇到同样的问题,我解决了用bash调用的问题。

 #!/bin/bash
 bash  /home/ubuntu/deployment-guru/green-deployment.sh

green-deployment.是

#!/bin/sh
cd /home/ubuntu/my_api && git pull origin blue-green-jenkins-integration

在没有bash的情况下打电话之前我遇到了以下问题

权限被拒绝(publickey)。致命:无法从远程存储库读取。

请确保您具有正确的访问权限并且存储库存在。

© www.soinside.com 2019 - 2024. All rights reserved.