Nếu bạn đang sử dụng bash, tôi sẽ khuyên bạn để tạo một chức năng như sau:
function custom_cd() { custom_command $1; cd $1; }
alias cd='custom_cd'
Tại đây, lệnh tùy chỉnh của bạn có thể là bất kỳ điều gì sẽ thực thi các lệnh cụ thể theo vào thư mục bạn nhập.
Bí danh được khai báo sau đó đảm bảo rằng nhập 'cd' sẽ gọi hàm và lệnh cd thực.
chỉnh sửa: Một ví dụ cho nhu cầu của bạn
function custom_cd() {
if [ -z "$1" ];
then
target=~
else
target=$1
fi
target=${target%/}
parent=$(dirname `readlink -f $target`)
grand_parent=`dirname $parent`
script=$grand_parent/`basename $target`.sh
if [ -x $script ];
then
`$script`
fi
cd $1
}
Giải thích:
Chúng tôi tạo ra một biến chứa phụ huynh của thư mục bạn muốn nhập. Sau đó, chúng tôi truy xuất cha mẹ của phụ huynh. Sau đó, chúng tôi tạo tên tập lệnh trong thư mục ông bà.
Sau đó, khả năng thực thi của tên tệp này được chọn, nếu có, tập lệnh được thực hiện và cuối cùng lệnh cd thực được thực hiện.
Hãy cẩn thận để xác định hàm trước bí danh, nếu không nó sẽ gây ra một đệ quy vô hạn!
Vì sự an toàn, trong hàm sử dụng 'builtin cd' để đảm bảo bạn không nhấn bí danh. Trong thực tế, nếu bạn sử dụng lệnh "nội trang", bạn không cần bí danh, bạn có thể đặt tên hàm là "cd". –
@glennjackman không biết về nội trang, tôi nghi ngờ một cái gì đó như thế này tồn tại, tốt đẹp! – SirDarius
Điều này làm việc tuyệt vời. Tôi đã thực hiện một cái gì đó trong phong cách này chuyển sang C shell nhưng cũng sẽ tạo một phiên bản Bash. Cảm ơn! – devshans