$(date -u +%Y%m%d) を含むエイリアスを使用して毎日 .zshrc をリロードする必要があるのはなぜですか。 [閉鎖]

$(date -u +%Y%m%d) を含むエイリアスを使用して毎日 .zshrc をリロードする必要があるのはなぜですか。 [閉鎖]

毎朝次のコマンドを実行して、毎日生成されたログファイルを追跡します。

ssh -t [email protected] tail -f development/abc/$(date -u +%Y%m%d).log

これは素晴らしい作品です。毎朝その日のログファイルは問題なく追跡されます。最後の金曜日に、.zshrcでこのコマンドに対して次のエイリアスを作成し、金曜日に完全に機能しました。

alias abc_log='ssh -t [email protected] tail -f development/abc/$(date -u +%Y%m%d).log'

今朝はabc_logを実行しましたが、次のエラーが返されました。

    tail: cannot open `development/abc/20160509.log' for reading: No such file or directory
Connection to 55.555.55.55 closed.

一度実行してみるとうまくいきsource ~/.zshrcましたねabc_log。毎朝.zshrcをリロードしたくありません。提案?ありがとうございます!

ベストアンサー1

含まれるdateコマンドは、エイリアスが生成されたときに一度だけ評価されます。これが.zshrcを再ロードすると再び機能する理由です。 djfが提案したように関数を使用すると、毎回評価され、これは予想される動作のようです。

おすすめ記事