Tôi có một kịch bản:
#!/bin/bash
echo "$(dirname $(readlink -e $1))/$(basename $1)"
ngồi ở đây: /home/myuser/bin/abspath.sh
có quyền thực thi.
Nếu tôi chạy, echo $PATH
tôi nhận được như sau:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
Tôi muốn có thể, từ bất kỳ thư mục, gọi abspath <some_path_here>
và nó gọi kịch bản của tôi. Tôi đang sử dụng bash, tôi đang làm gì sai?
cd $HOME/bin ; ln -s abspath.sh abspath
. Điều này cho phép bạn giữ phần mở rộng chính xác cho tập lệnh và có một công cụ có tên như bạn muốn. (Trong một số tương lai, bạn có thể thay thế tập lệnh shell của mình bằng tập lệnh python, cho mẫu ...)