[英]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.