Tôi chỉ biết hai cách: alias foo=bar
và function foo() { bar }
.
Lý do tôi hỏi là - đột nhiên trong một trong các phiên bash của tôi - tôi không thể chạy ln
lệnh vì bash
lỗi với -bash: /usr/local/.../ln: No such file or directory
(trong đó /usr/local/.../
là một trong các mục trong PATH
biến môi trường của tôi ).
Tuy nhiên, đây không phải là PATH
vấn đề vì nếu tôi chạy, which ln
nó sẽ xuất ra nhị phân dự kiến /usr/bin/ln
(mà tôi có thể chạy tốt nếu tôi chỉ định đường dẫn tuyệt đối).
Tôi cũng đã kiểm tra ln
trong alias
và function
khai báo của mình và không có gì:
$ declare -f | grep ln
$ alias | grep ln
Vấn đề chỉ xảy ra trong một phiên bash. Nếu tôi bắt đầu một trình bao mới, nó sẽ hoạt động tốt trở lại, nhưng tôi muốn biết điều gì đã gây ra sự cố bất ngờ này trong một phiên bash cụ thể này.
Bất kỳ ý tưởng như những gì có thể gây ra điều này?
type ln
tôi cóln is hashed (/usr/local/.../ln)
vẻ như là vấn đề, nhưng chính xác thì nó có nghĩa là gì "băm"? Tôi chưa bao giờ nghe nói về tính năng đó trong bash.