Làm thế nào để mở một số Tab Terminal trong các thư mục khác nhau (thư mục làm việc)?


10

Tôi muốn một tập lệnh để mở một số Tab trong các thư mục khác nhau.

Trong khi tìm kiếm tôi đã tìm thấy mục này , nhưng một trao đổi như được thấy dưới đây đã mở một Terminal có ba tab trong thư mục nhà của tôi. Thông báo lỗi hiển thị:

Failed to parse arguments: Unknown option --execute=cd /some/thing/

Kịch bản trông như thế này:

#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
          --tab --execute="cd /home/" \
          --tab --execute="cd /home/" \
exit 0

Một biến thể với - làm việc-thư mục = "/ some / thing /" cũng không giúp được gì. Bạn có thể thấy một sai lầm?

Câu trả lời:


8

Sau đây làm việc cho tôi trên một hướng. Bạn có thể sử dụng cái này thay cho phiên bản của bạn:

#!/bin/bash
gnome-terminal --tab  --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0

3

Lỗi cụ thể của bạn là do không sử dụng --executetùy chọn đúng cách. Nếu bạn xem đoạn trích từ trang man bên dưới, bạn sẽ lưu ý rằng --execute không có dấu bằng được liệt kê như một phần của cú pháp, vì nó chỉ thực hiện toàn bộ phần còn lại của dòng lệnh. Một ví dụ về sử dụng đúng sẽ là:

gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'

LƯU Ý QUAN TRỌNG: Dù sao,
sử dụng cdlà một chút của một trường hợp đặc biệt. cdkhông giống như hầu hết các lệnh khác, nó không khởi chạy nhị phân / thực thi của chính nó. Nó được giải thích trực tiếp bởi bash(hoặc bất kỳ shell nào bạn đang sử dụng). Do đó, cố gắng gọi cdkhông đồng ý với các cờ --execute-x(dường như muốn trực tiếp sinh ra một quá trình con). Vấn đề tương tự sẽ xảy ra (tôi đã kiểm tra) với các lệnh khác được xử lý trực tiếp bằng cách bashthích home. Ngay cả khi được sử dụng đúng cách, không có dấu bằng, nó vẫn sẽ dẫn đến lỗi: "Không tìm thấy tệp hoặc thư mục." Do đó, sử dụng --working-directory=[DIRECTORY]tùy chọn là đặt cược tốt nhất của bạn để làm những gì bạn muốn làm.

LƯU Ý QUAN TRỌNG KHÁC:
Ngay cả khi điều này không đúng, bạn vẫn sẽ gặp rắc rối. Vấn đề nằm ở việc cố gắng sử dụng --executetùy chọn khi bạn thực sự có ý nghĩa của --commandtùy chọn. Trong tài liệu trang người đàn ông, nó nói cụ thể

-e, --command = STRING
Thực hiện đối số cho tùy chọn này bên trong thiết bị đầu cuối.

-x, --execute
Thực hiện phần còn lại của dòng lệnh bên trong thiết bị đầu cuối.

(nhấn mạnh của tôi)

Nói cách khác, có lẽ nó sẽ không phân tích nó theo cách bạn nghĩ nó nên. Việc sử dụng --executengăn bạn vượt qua bất kỳ tùy chọn nào khác để gnome-terminal.

Một đoạn trích từ một trong các tập lệnh của riêng tôi nơi tôi chạy nhiều lệnh trong các tab riêng biệt (tên đã thay đổi cho quyền riêng tư / bảo mật của tôi):

gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"

(Ngẫu nhiên, cố gắng sử dụng --commandcờ có cdhoặc homecũng sẽ dẫn đến lỗi "Không có tệp hoặc thư mục" quen thuộc.)

Tôi hy vọng điều này không quá dài. Tôi chỉ đang cố gắng để được kỹ lưỡ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.