簡體   English   中英

Unix Bash腳本導致git clone無法正常工作

[英]Unix Bash script causing git clone to not work

我有一個bash腳本(script1.sh),我執行git克隆。 然后,從該存儲庫,我運行另一個運行正常的腳本(script2.sh)。 我運行script2.sh很好,但是git repo不存在。 任何文件夾都不存在。 如果我在命令行上運行git clone,它就克隆它就好了。 為什么我的腳本沒有git克隆我的repo正確?

我如何運行第一個腳本。

sudo bash script1.sh

script1.sh

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

script2.sh

~ Some unrelated unix commands

注意:我試過查看/ home / ubuntu文件夾但找不到它。 它也不是“隱藏”文件。

這可以解決您的問題替換您的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

如果它不起作用,可能由於您當前的用戶權限或因為您的fs是只讀的而不允許您在$home上寫入您可以通過執行mount而不選項來檢查它,它將列出所有已安裝的fs 。

另一點,不建議在腳本內部進行sudoing。 目前你基本上是sudo sudo。 如果你想確保正確的用戶正在執行你的腳本,你最好檢查當前的id而不是嵌套的sudo。

正如@jibe建議的那樣,你從sudo調用bash,它將從不同的位置調用bash 提供本地git存儲庫的完整路徑。

我在編寫藍綠色部署腳本時遇到同樣的問題,我解決了用bash調用的問題。

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

green-deployment.sh

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

在沒有bash的情況下打電話之前我遇到了以下問題

權限被拒絕(publickey)。 致命:無法從遠程存儲庫讀取。

請確保您具有正確的訪問權限並且存儲庫存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM