エイリアスにdir varを使用しますか?

エイリアスにdir varを使用しますか?

次のディレクトリ変数と機能があります。

coding_dir="~/Documents/coding"
function f() { cd $1 && ls -a ; }

次のようなエイリアスを作成したいと思います。

alias rnd="f $coding_dir/random"

ただし、エイリアスを使用しようとすると、次のエラーが発生します。

f:cd: no such file or directory: /random

エイリアスとしてディレクトリ全体を使用できることはわかっていますがbashzsh

ベストアンサー1

$coding_dirを設定する前にエイリアスを定義できますか?エラーメッセージを見ると、これが起こっているようです。

問題は、エイリアスを使用するのではなく、エイリアスを定義するときに$ coding_dirを拡張することです。

使用時に拡張したい場合は、使用するときに$ coding_dirのみを拡張するように単一引用符で定義する必要があります。

alias rnd='f $coding_dir/random'

$coding_dirをまだ定義せず、後で定義しても機能します。

$ coding_dir=~/Documents/coding
$ rnd
(should chdir to your $HOME/Documents/coding/random)

スペースを含むディレクトリ名を処理するために、エイリアスに引用符を追加することもできます。

alias rnd='f "$coding_dir"/random'

f 関数の定義もあります。

function f() { cd "$1" && ls -a ; }

おすすめ記事