Tự động hóa quy trình làm việc trong shell


7

Đến từ các giao diện GUI Cuối cùng tôi cũng hiểu được sức mạnh của việc sắp xếp mọi thứ trong văn bản, nhưng tôi thực sự không biết cách sử dụng tất cả sức mạnh đó.

Tôi nhận ra quy trình làm việc cho một dự án cụ thể diễn ra như thế này ...

# compile repo 1
cd ~/workspace/repo1
make -B
# deploys compiled code into repo2
make deploy

# commit repo 1
cd ~/workspace/repo1
git add .
git commit -m "changes"
git push origin master

# commit repo 2
cd ~/workspace/repo2
git add .
git commit -m "changes"
git push origin master

Câu hỏi của tôi không phải là làm thế nào để thực hiện điều này, đó là công cụ phù hợp cho việc này là gì? Đọc xung quanh có vẻ như một kịch bản Bash là những gì tôi cần, nhưng tôi muốn biết từ các chuyên gia.

Câu trả lời:


8

Bạn đã có một khởi đầu rất tốt bằng cách gõ tất cả vào một nơi.

Sao chép tất cả những thứ đó vào một tệp văn bản (ví dụ: workflow.shnhưng tên không thực sự quan trọng), sau đó đặt nó ở dòng đầu tiên của tệp :

#!/bin/sh

Bây giờ bạn có một kịch bản shell. Làm cho nó thực thi:

chmod +x workflow.sh

Bây giờ bạn có thể chạy nó như một lệnh:

./workflow.sh

Nó sẽ thực thi từng lệnh đó theo thứ tự chỉ bằng cách gọi luồng công việc.

Bây giờ bạn là một lập trình viên hệ thống mới bắt đầu. Bạn chỉ có thể đi lên từ đó.

Cập nhật

Để chỉ định thay đổi mà không phải chỉnh sửa tập lệnh mỗi lần bạn nên thay đổi:

git commit -m "changes"

Đọc:

git commit -m "$1"

Sau đó, bạn có thể chuyển các thay đổi dưới dạng đối số dòng lệnh:

./workflow "Describe changes made"

Một công cụ hữu ích khác là bí danh và PATH. Bạn có thể tạo một thư mục đặc biệt (ví dụ ~/bin) và đặt tất cả các tập lệnh ở đó, thêm thư mục này vào PATHbiến của bạn và bạn không cần phải nhập đường dẫn đầy đủ đến tập lệnh mỗi khi bạn muốn khởi chạy nó. Trong trường hợp có bí danh, bạn cần tạo bí danh cho mỗi tập lệnh, tuy nhiên đôi khi bí danh sẽ thoải mái hơn do bạn có thể chỉ định các tham số chạy khác nhau trong nó.


Cảm ơn! Tập lệnh sẽ dừng thực thi nếu nhận được lỗi, git từ chối các thay đổi của tôi vì tôi chưa kéo?
phương pháp của

Không, nó sẽ chỉ làm điều tiếp theo trong danh sách (như thể bạn mù quáng gõ nó vào thiết bị đầu cuối). Những gì bạn đang hỏi về được gọi là kiểm soát dòng chảy . Học cách làm điều đó là bước tiếp theo của bạn nhưng đó là một chủ đề lớn hơn tôi có thể viết về đây. Hãy thử tìm kiếm Google .
bahamat

6
@Duopixel đặt set -edòng tiếp theo sau cô ấy và tập lệnh sẽ không tiếp tục nếu xảy ra lỗi.
vội vàng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.