エイリアスは評価結果の変数を受け入れます。

エイリアスは評価結果の変数を受け入れます。

最近作成したディレクトリにCDを移動できるようにエイリアスを定義しようとしています。

alias cdlatest="latestdir=$(ls -td -- */|head -n 1); cd $latestdir"

ただし、このエイリアスは一度だけ使用できます。新しいディレクトリに変更しても、最後のディレクトリにCDを試してください。変数が$(ls -td -- */|head -n 1)最初から一度だけ評価されるためです。この問題をどのように解決しますか?

ベストアンサー1

エイリアス定義の周囲の二重引用符を一重引用符に変更するだけです。

alias cdlatest='latestdir=$(ls -td -- */|head -n 1); cd $latestdir'

しかし、いくつかの合理化をお勧めします。

alias cdlatest='cd "$(\ls -td -- */|head -n 1)"'

中間変数 "$latestdir" を削除し、$(...) コマンドの評価結果を参照し、エイリアスのない ls 形式を使用します。

ただし、名前に改行文字を含むファイルは処理されないことに注意してください。

おすすめ記事