Điểm:4

Tập lệnh để chạy một lệnh trong một thiết bị đầu cuối, sau đó mở một tab thiết bị đầu cuối mới và chạy một lệnh khác

lá cờ co

Tôi đang chạy Ubuntu 21.04 và tôi muốn tạo một tập lệnh, tập lệnh này sẽ thực hiện như sau:

  1. Chạy:

    cd && cd path/to/repo && git pull && npm i && code . && npm chạy dev
    
  2. Sau đó, mở tab Thiết bị đầu cuối Gnome mới bằng cách sử dụng:

    gnome-terminal --tab
    
  3. Sau đó chuyển sang tab này và chạy:

    cd && cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev
    

Vì vậy, về cơ bản, tôi muốn một thiết bị đầu cuối có 2 tab chạy 2 máy chủ phát triển.

tôi đã thử với xdotoolxte, nhưng nó không bao giờ hoạt động (các phím thậm chí không được nhấn).

Thậm chí có thể làm những gì tôi muốn?

Theo đề xuất bên dưới tôi đã thử, nó đã cho tôi không thể chạy cd vì vậy tôi đã googled và đưa ra những điều sau đây:

gnome-terminal --tab -- /bin/bash -e -c "đường dẫn cd/đến/repo && ls && git pull && npm i && code . && npm run dev" --tab -- /bin/bash -e -c "đường dẫn cd/đến/repo && git reset --hard && git pull -f && npm i && npm run dev"

Nhưng vấn đề là npm chạy dev không được phép dừng lại và do đó, tab đầu cuối thứ hai không bao giờ được mở. Và tôi cần điều hành chúng cùng nhau...

vanadium avatar
lá cờ cn
Bạn đã thử những gì cho đến nay? Việc chạy hai chuỗi lệnh từ dòng lệnh của `gnome-terminal` có thể không còn thực hiện được nữa, bởi vì ngày nay bất kỳ lệnh nào cũng cần phải xuất hiện ở cuối sau `--`. Bạn có thể cần một trình giả lập thiết bị đầu cuối khác để có thể tự động thiết lập hai phiên theo thẻ.
terdon avatar
lá cờ cn
Lưu ý nhỏ: bạn không cần `cd && cd path/to/repo`. `path/to/repo` là một đường dẫn đầy đủ nên bạn chỉ cần thực hiện `cd path/to/repo` hoặc, nếu nó liên quan đến `$HOME` của bạn, bạn có thể thực hiện `cd ~/path/to/repo `.
lá cờ co
vâng, tôi biết về `cd && cd path/to/repo`, tôi hiện đang sao chép và dán lệnh, vì vậy, theo cách của tôi là `git pull && npm i && npm run dev`, bất kể thư mục hiện tại là gì.
Điểm:4
lá cờ cn

Mặc du thiết bị đầu cuối gnome chỉ ra rằng -e không được dùng nữa, nó vẫn hoạt động trong 3.40.3.

# Tùy chọn â-eâ không được dùng nữa và có thể bị xóa trong phiên bản mới hơn của gnome-terminal.
# Sử dụng â-- â để kết thúc các tùy chọn và đưa dòng lệnh thực thi sau nó.

Các nhà phát triển dường như quên rằng đây là cách duy nhất để làm những gì bạn muốn, tức là tự động thiết lập các môi trường làm việc khác nhau trong các tab. Cú pháp "mới", thêm các lệnh để chạy ở cuối các tùy chọn sau -- không cho phép làm điều đó. Một khi -e tùy chọn bị xóa, bạn sẽ cần chuyển sang một trình giả lập thiết bị đầu cuối khác cho thứ gì đó như thế này.

Vì vậy, ví dụ, điều này vẫn hoạt động cho đến nay:

gnome-terminal --tab -e "htop" --tab -e "top"

Thay thế lệnh htophàng đầu bởi tập lệnh tùy chỉnh của bạn.

lá cờ co
Có vẻ như sắp hoạt động, nhưng nó báo lỗi: ```# Lỗi: Không thể thực thi quy trình con âcdâ: Không thể thực thi: Không có tệp hoặc thư mục như vậy # Lỗi: Không thể thực thi quy trình con âcdâ: Không thể thực thi: Không có tệp hoặc thư mục như vậy``` nhưng nó hoạt động với `gnome-terminal --tab -e "ping goo.gl"` tại sao nó không thể chạy `cd` trong đó?...
Điểm:0
lá cờ co

vì vậy nội dung của tập lệnh sh là:

gnome-terminal --tab --title='frontend' -e "bash -c 'cd path/to/repo && git pull && npm i && code . && npm run dev'";
gnome-terminal --tab --title='backend' -e "bash -c 'cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev'"

Cảm ơn @vanadium đã giúp tìm ra hướng googling;)

nó hoạt động như dự định. Nếu tôi mở một thiết bị đầu cuối và viết sh myScript.sh nó sẽ mở thêm 2 tab với các repo phụ trợ và giao diện người dùng đang chạy.

Một vấn đề nhỏ là nếu tôi thực thi tệp sh bằng cách nhấp đúp vào tệp đó, nó sẽ mở 2 cửa sổ đầu cuối (xấu xí, tôi muốn có tab).

Không thực sự biết làm thế nào để khắc phục điều này.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.