どちらも現在のディレクトリパスである同じ情報をpwd
提供します。~+
だから私の質問は、他のものの代わりに1つを使うべきですか?~+
私の考えでは、すべてのシステムがサポートされていますかpwd
?もしそうなら~+
、使用することはより目を引くでしょう。
使用例は次のとおりです。
var=$($(pwd)/folder/another/script -v)
var=$(~+/folder/another/script -v)
ベストアンサー1
~+
標準語ではないようですが、only~username
とチルダは別々に定義されます。。たとえば、DashとBusyboxはこれをサポートしていません~+
。ただし、コマンドpwd
とシェル変数は$PWD
標準であるため、または機能する必要があります。"$(pwd)"
"$PWD"
ほとんどの場合を使用して現在のディレクトリを参照できますが、パス全体を.
拡張する必要がある場合は、通常、変数の代わりに"$PWD"
コマンド置換を使用します。これには多くのシェルで新しいプロセスを作成する必要があるため、不要なオーバーヘッドが発生します。
現在のディレクトリパスにスペースなどが含まれている場合は、拡張子を引用する必要があります。(または$IFS
何でも含め、グローバル文字も含まれます。)
ただし、現在の作業ディレクトリのシンボリックリンクを確認するには"$(pwd -P)"
。これが与えられたものであることを確認するものではありません)。たとえば、$PWD
$(pwd)
$ mkdir /tmp/foo
$ ln -s /tmp/foo /tmp/link
$ cd /tmp/link
$ echo "$PWD"; pwd; pwd -P
/tmp/link
/tmp/link
/tmp/foo