私はFedora25を使用しており、bashプロファイルに次のエイリアスを追加しました。
alias releasenotes="dnf updateinfo --refresh info `dnf check-update | cut -d '.' -f 1 | xargs` | less"
(ストレートアップは使えませんdnf updateinfo info
のため https://bugzilla.redhat.com/show_bug.cgi?id=1405191 )
私のエイリアスは機能しますが、コマンドの実行には約10秒かかります。また、プロファイルのソース時にbashがすべてのエイリアスを解析して検証するため、新しいシェルを作成すると10秒のハングが発生します。これは迷惑です。
Bashがエイリアスの解析と検証を試みないようにする方法はありますか?それともそれだけですか?
私の最善の推測は、エイリアス定義の前後に一重引用符を使用する必要があることです。
二重引用符を使用する場合、シェル変数はエイリアス定義段階(解析と検証と言ったように)とバックティックまたは$(コマンド)のようなシェル置換でコンテンツに置き換えられることを知っています。
より良い説明はこれにあります nix SEの質問 !
それでもプロンプトの読み込みが速くならない場合は、エイリアスの代わりにシェル関数を定義してください。
編集:前述のドンキホーテのように、カット引数を二重引用符に置き換えることを忘れないでください。
bash
は引用符で囲まれた文字列を解釈し、その解釈は埋め込まれたdnf check-update
コマンドを実行します。この実行は、エイリアスを作成しているメインのdnf updateinfo
コマンドではなく、エイリアス定義中に時間がかかるものです。 sleep
に基づいて考案された例を試して、alias
自体に5秒かかることに注意してください。
alias sleep5="echo 'wake' ; `sleep 5` ; echo 'done'"
解釈を避けるために一重引用符を使用してください。
alias releasenotes='dnf updateinfo --refresh info `dnf check-update | cut -d "." -f 1 | xargs` | less'
cut
引数を二重引用符に置き換えることを忘れないでください。