Có thể tạo bí danh Bash nhập một chuỗi nhất định vào Terminal không?


1

Có thể tạo một bí danh Bash mà khi chạy, nhập một chuỗi lựa chọn trước của tôi, vào Terminal không?

Hãy giả vờ đây là trong tôi ~/.bash_profile:

alias start_youtube="cd ~/Video/Youtube; **[PASTE: youtube-dl URL]**"

Hãy tưởng tượng rằng: bí danh sẽ thay đổi thư mục thành Video/Youtubevà sau đó [PASTE] chuỗi : youtube-dl URL. Nó có thể làm Return ⏎hoặc tốt nhất là chỉ để lại chuỗi youtube-dl URLtrong dấu nhắc Terminal để tôi có thể trao đổi URL giữ chỗ cho một URL thực.

Nếu tôi cố gắng thực sự chạy bí danh dưới đây;

alias start_youtube="cd ~/Video/Youtube; youtube-dl URL"

nó sẽ chạy lệnh như được nhập bởi youtube-dl sẽ trả về lỗi như "Không thể phân tích cú pháp URL" - điều này có thể ổn. Nhưng nhấn phím sẽ không hiển thị đầu vào cuối cùng của bí danh ( youtube-dl URL) mà chỉ hiển thị việc gọi bí danh ( start_youtube) [mà tôi chắc chắn thường thích hợp hơn].

Vì vậy, giải pháp được yêu cầu là dán chuỗi giữ chỗ vào Dấu nhắc lệnh hoặc bằng cách nào đó truy cập vào lịch sử của lệnh bí danh thông qua Shell.

Câu trả lời:


1

Đây là cách tôi sẽ tiếp cận nó. Sử dụng câu hỏi liên quan này để viết hàm sẽ nằm trong bashrchoặc bash_profile. Sau đó thêm một dòng trong hàm sẽ xóa dòng gần đây nhất trong lịch sử bash của bạn bằng cách sử dụng


Tôi giải quyết cho một cái gì đó giữa. Đã tạo một hàm echoes "chuỗi giữ chỗ" mà tôi có thể Sao chép, Chỉnh sửa và Nhập, một khi bí danh cdphải đến thư mục mong muốn. Không hiểu cách truy cập lịch sử bash từ bí danh hoặc tại sao xóa các dòng khỏi nó, vì bàn phím không tiết lộ các lệnh được sử dụng trong bí danh afaik.
Winterflags

1

Bạn có thể sử dụng osascriptcho việc này và báo cho Sự kiện hệ thống để nhập khóa cho bạn. Nói chung, tôi thực sự khuyên bạn nên chống lại toàn bộ cách tiếp cận gửi phím một cách mù quáng vào vỏ, bạn có thể tàn phá hệ thống của mình bằng cách này!

osascript -e 'tell application "Terminal" to activate' -e 'tell application "System Events" to keystroke "# cd /tmp; your text" '

Vì lý do an toàn, tôi gửi ký tự nhận xét #là ký tự đầu tiên, nhưng dòng này cho kết quả bạn muốn. Con trỏ đợi sau văn bản của bạn và bạn có thể tiếp tục nhập.

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.