Điểm:7

Làm cách nào tôi có thể làm cho bí danh shell hoạt động ngay lập tức?

lá cờ pl

Xác định và sử dụng bí danh trong cùng một dòng dường như không hoạt động:

bí danh $ x=ls; x
x: lệnh không tìm thấy

Làm sao để "thoát" x trong cuộc gọi thứ hai để nó được nhận dạng là bí danh?

Someone avatar
lá cờ my
Thêm bí danh vào tệp `.bashrc` sau đó chỉ cần viết `source ~/.bashrc` bây giờ bí danh là vĩnh viễn
Will avatar
lá cờ id
Tôi đã thử && và tôi đã thử đặt nhiều bí danh trên một dòng (tất cả đều được chỉ định) … nhưng cho dù bạn đặt bao nhiêu bí danh trên dòng, nó sẽ không thực thi cái đầu tiên (hoặc bất kỳ) trong cùng một dòng - nó rất thú vị!
lá cờ hr
Xem [Chạy bí danh sau khi tạo](https://unix.stackexchange.com/a/389974)
bers avatar
lá cờ pl
@Algnis `nguồn ~/.bashrc; x` vẫn không hoạt động.
Điểm:11
lá cờ us

Bạn không thể (theo những cách thông thường). Nhìn thấy phần hướng dẫn sử dụng Bash trên Bí danh (nhấn mạnh của tôi):

Các quy tắc liên quan đến định nghĩa và sử dụng bí danh phần nào gây nhầm lẫn. Bash luôn đọc ít nhất một dòng đầu vào hoàn chỉnh và tất cả các dòng tạo thành lệnh ghép, trước khi thực hiện bất kỳ lệnh nào các lệnh trên dòng đó hoặc lệnh ghép. Bí danh được mở rộng khi một lệnh được đọc, không phải khi nó được thực thi. Do đó, một bí danh định nghĩa xuất hiện trên cùng một dòng với lệnh khác không mất có hiệu lực cho đến khi dòng đầu vào tiếp theo được đọc. Các lệnh sau định nghĩa bí danh trên dòng đó không bị ảnh hưởng bởi bí danh mới. […] Để an toàn, hãy luôn đặt các định nghĩa bí danh trên một dòng riêng biệt và không sử dụng bí danh trong các lệnh ghép.

Bạn có thể giải quyết vấn đề này bằng cách buộc phân tích cú pháp lại bằng cách sử dụng đánh giá:

$ bí danh x=ngày; đánh giá x
T6 ngày 12 tháng 11 18:20:54 JST 2021
bers avatar
lá cờ pl
`eval` là thứ tôi đang tìm kiếm! (Tôi đã thử `exec`, nhưng `eval` chưa từng xuất hiện trong đầu tôi trước đây.) Cảm ơn!
bac0n avatar
lá cờ cn
+1 `shopt -s extglob; eval echo '!(file)'`

Đă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.