Câu trả lời:
Giả sử lệnh của bạn được gọi mycommand
, tôi sẽ thay đổi trình khởi chạy của mình để chạy lệnh này:
gnome-terminal -e "mycommand|less"
Nếu bạn muốn một giải pháp lâu dài hơn, có lẽ sạch hơn, hãy mở gnome-terminal, đi đến Chỉnh sửa, Tùy chọn hồ sơ và nhấp vào tab Tiêu đề và Lệnh. Thay đổi tùy chọn "Khi lệnh thoát" thành "Giữ thiết bị đầu cuối mở".
Khi bạn thực thi các lệnh, nó sẽ để thiết bị đầu cuối mở khi có thứ gì đó chạy.
Chỉnh sửa: Nếu bạn không thực sự quan tâm đến thiết bị đầu cuối, bạn chỉ có thể sử dụng cờ giữ của xterm:
xterm -e "mycommand" hold
Trình khởi chạy của bạn đang chạy một kịch bản phải không?
Vào cuối tập lệnh của bạn thêm
read -p "Press any key to exit > " -n1 junk
echo
Sau đó, kịch bản của bạn sẽ đợi cho đến khi bạn chọn kết thúc nó.
command || read -n1 -p "Command failed. Press any key to exit..."
Trong phím tắt .desktop của bạn, sử dụng cái này
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"
Sau khi tập lệnh của bạn kết thúc, quy trình Bash sẽ tự thay thế bằng một lời gọi mới của chính nó.
Nếu bạn cần chuyển các đối số được trích dẫn vào tập lệnh của mình, bạn phải thoát các trích dẫn:
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
Một cách tiếp cận hơi khác với các câu trả lời khác: chạy lệnh của bạn và nếu thất bại, sau đó sinh ra một vỏ. Bằng cách này, bạn không cần phải mở thiết bị đầu cuối (không phân biệt thành công hay thất bại của lệnh) và bạn có thể thấy lớp vỏ đó đặc biệt hữu ích khi thất bại. Để đóng nó, chỉ cần sử dụng Ctrl-D (EOF), "exit", Alt-F4 (hoặc bất cứ điều gì trình quản lý cửa sổ của bạn sử dụng để đóng các cửa sổ), v.v.
#!/bin/sh
[ $# -eq 0 ] && {
echo "$(basename $0): no command" >&2
exit 1
}
"$@" || {
echo "failed: $?"
exec $SHELL
}
Đặt tệp này ở đâu đó, chẳng hạn như ~ / bin, sau đó sử dụng "thành công hoặc trình bao lệnh ban đầu của bạn" trong trình khởi chạy của bạn.
Câu trả lời này cho câu trả lời tốt nhất mà tôi đã thấy cho đến nay để làm những gì bạn muốn. Họ khuyên bạn nên tạo một tập lệnh với các lệnh để thực thi và sử dụng nó với tham số --init-file (cụ thể là bash, nhưng bạn có thể làm tương tự cho csh / tcsh / zsh, v.v.):
#!/bin/bash --init-file
commands to run
... và thực hiện nó như:
xterm -e /path/to/script
# or
gnome-terminal -e /path/to/script
# or
the-terminal -e bash --init-file /path/to/script/with/no/shebang
Sử dụng watch
lệnh.
Định dạng: watch -n60 myCommand
hoặcwatch -n60 "my command string"
-n
quy định số giây chờ giữa các lần gọi myCommand ; ví dụ: lệnh trên sẽ gọi myCommand cứ sau 60 giây, mãi mãi."my command string"
.Giả sử bạn muốn Trình khởi chạy hiển thị mức sử dụng đĩa và vẫn mở để người đọc xem. Tôi chỉ đơn giản là sử dụng lệnh này bên trong Trình khởi chạy :
watch -n60 "df -h"
, df -h
giờ sẽ gọi 60 giây một lần.
Tôi thích điều này hơn câu trả lời được chấp nhận gnome-terminal -e "mycommand|less"
bởi vì tôi đang chạy Xubfox, sử dụng một thiết bị đầu cuối khác theo mặc định.
--tab-with-profile=PROFILENAME
tùy chọn gnome-terminal . Bạn có thể có nhiều hồ sơ cho các bahaviours khác nhau theo cách này :-)