今回の内容
Zsh/Bash での pwdコマンド(フルパスの表示)の出力に $HOME
が含まれる場合に、 ~
を使った表記にするという方法の話です。
コマンド
今回の結果を得られるコマンドの一例は、以下になります。
echo "${PWD/#$HOME/~}"
この後で、内容を補足します。
コマンドに関する補足
PWD
は /【Users や home】/【username】/【続きのパス】
という内容になり、 HOME
は /【Users や home】/【username】
という内容になります。
そして 【処理対象の文字列】/#【置きかえ対象の文字列】/【置きかえ後の文字列】
という部分は、 #
が使われていることにより、「 【処理対象の文字列】
から先頭一致で 【置きかえ対象の文字列】
を探し、 【置きかえ後の文字列】
に置きかえる」という挙動になります。
それで、 PWD
の /【Users や home】/【username】/【続きのパス】
という文字列に対して、 HOME
の /【Users や home】/【username】
となる文字列が ~
に置き換わります。
その結果、 ~/【続きのパス】
となる文字列が出力されるという仕組みです。
(補足説明が見づらい感じになってる...)
実際に試した例
以下は、実際に試した例です。水色の矩形の部分は 【Users や home】/【username】
にあたる部分です。その部分が、 echo "${PWD/#$HOME/~}"
というコマンドを使ったことで、 ~
になることが確認できました。
参照した情報
●Shell scriptにおける, '', "", , ``, $()まとめ #Terminal - Qiita
https://qiita.com/shyum/items/6bbdef9b7474cea1622b
●【pwd】Linuxでカレントディレクトリを表示するコマンド | UX MILK
https://uxmilk.jp/27622