Tôi mới dùng shell scripting và không thể tìm ra điều này. Nếu bạn không quen thuộc, chi nhánh lệnh git trả về một cái gì đó nhưLàm thế nào để lấy tên của nhánh git hiện tại thành một biến trong một kịch bản lệnh shell?
* develop
master
, trong đó dấu hoa thị đánh dấu nhánh hiện đã được kiểm tra. Khi tôi chạy sau trong terminal:
git branch | grep "*"
tôi nhận được:
* develop
như mong đợi.
Tuy nhiên, khi tôi chạy
test=$(git branch | grep "*")
hoặc
test=`git branch | grep "*"`
Và sau đó
echo $test
, kết quả là chỉ là một danh sách các tập tin trong thư mục. Làm thế nào để chúng ta làm cho giá trị của test = "* phát triển"?
Sau đó, bước tiếp theo (khi chúng tôi nhận được "* phát triển" thành một biến được gọi là thử nghiệm), là lấy chuỗi con. Điều đó có đúng không?
currentBranch=${test:2}
Tôi đã chơi xung quanh với chức năng chuỗi con đó và tôi gặp lỗi "thay thế xấu" rất nhiều và không biết tại sao.
gì nếu bạn sử dụng dấu nháy đơn xung quanh dấu : ''*'' thay vì '" * "' –
@glenn không phải là nơi mà sự giãn nở xảy ra, nó ở trong tiếng vọng, như marco đã được biên soạn. – wich
Hãy thử [bài đăng trên blog này] (http://railstips.org/blog/archives/2009/02/02/bedazzle-your-bash-prompt-with-git-info/). –