最後に""のある形式で返したいと思います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 pipefail
set -o localoptions -o pipefail
POSIXlyでは、次のことができます。
pwd() (
pwd=$(command pwd "$@" && echo .) || exit
pwd=${pwd%??}
pwd=${pwd%/}/
printf '%s\n' "$pwd"
)