末尾のスラッシュを追加するようにpwdコマンドを再プログラムできますか?

末尾のスラッシュを追加するようにpwdコマンドを再プログラムできますか?

コマンドを使用すると、pwdたとえば末尾のスラッシュを印刷したいと思います/opt/opt/しかし、ファイルに次の行を追加してみました~/.bash_aliases

alias pwd=" echo "${PWD}/" "

しかし、正しく動作しません。末尾のスラッシュを使用して現在の作業ディレクトリを印刷するのではなく、現在の作業ディレクトリを印刷します。ターミナルセッション開始時、または最後にsource ~/.bashrcコマンドを実行したとき。たとえば、コマンドに別の名前を付けても、cwdこの方法で実行されます。

だから私の質問は、現在の作業ディレクトリの後ろにスラッシュが続くエイリアスを何とか取得できるということです。

ありがとうございます。

ベストアンサー1

問題は、$PWDエイリアス定義の一部が引用されていないことです(前の二重引用符で囲まれた文字列を閉じて$PWD新しい文字列を起動します)。これは、エイリアスが定義されたときに評価されることを意味します。

代わりに一重引用符を使用してください。全体的なエイリアスリテラルまたはより良い*はシェル機能を使用してpwdコマンドをオーバーライドします。

次のように(またはecho必要に応じて使用):

alias pwd='printf "%s/\n" "$PWD"'

またはシェル関数を使用してください。

pwd () {
    printf '%s/\n' "$PWD"
}

*良い = 複雑な参照を避けながら期待どおりに動作します。

おすすめ記事