私はスクリプトを持っています:
#!/bin/bash
echo "$(dirname $(readlink -e $1))/$(basename $1)"
それはここにあります:/home/myuser/bin/abspath.sh
実行権限があります。
echo $PATH
を実行すると、次のメッセージが表示されます:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
任意のディレクトリからabspath <some_path_here>
を呼び出してスクリプトを呼び出すことができるようにしたいと思います。私はbashを使用していますが、何を間違っていますか?
abspath
と入力したいのですが、プログラムの名前はabspath.sh
。問題は、それがPATHにあるかどうかではなく、単にその名前を使用して呼び出していないという事実です。
次の2つのオプションがあります。
abspath.sh
代わりに。abspath
に変更します。このコードは小さいので、シェル関数としてコーディングします。
abspath() {
echo "$(dirname "$(readlink -e "$1")")/$(basename "$1")"
}
そしてはい、あなたはそれらすべての引用符が欲しいのです。
.bashrcファイルにコマンドを追加して、エイリアスを設定します。
alias abspath='sh /home/myuser/bin/abspath.sh'
そして、ファイルを調達することを忘れないでください。
Bashスクリプトの名前をabspath
に変更してから、bin
ディレクトリに移動します。その後、どこからでもabspath
を呼び出すことができます
3番目のオプションは、abspath.shスクリプトを指すabspathと呼ばれるエイリアスを作成することです。