pwd は、末尾の "/" を使用して現在のパスを返します。

pwd は、末尾の "/" を使用して現在のパスを返します。

最後に""のある形式で返したいと思いますpwd。これを達成する方法についてのアイデアはありますか?/path/to/dir/path/to/dir//

答え1

を使用すると、次のようにbash4.4+オーバーライドできますpwd

pwd() {
  local -
  set -o pipefail
  builtin pwd "$@" | sed '${/\/$/!s|$|/|;}'
}

/つまり、現在の作業ディレクトリの最後の行がまだ存在しない場合は、最後の行(たとえばafter cd /)に追加され、オプションで元の終了ステータスが返されますpipefail(この機能でのみ使用されますlocal -)。

( にzsh交換、 )。local -; set -o pipefailset -o localoptions -o pipefail

POSIXlyでは、次のことができます。

pwd() (
  pwd=$(command pwd "$@" && echo .) || exit
  pwd=${pwd%??}
  pwd=${pwd%/}/
  printf '%s\n' "$pwd"
)

関連情報