$()
Linuxシェルコマンドには何がありますか?
たとえば、
chmod 777 $(pwd)
答え1
答え2
POSIXまたはPOSIXに似たシェル(ksh
、、、、、、... )では、次のようになりますbash
。内部でコマンドを実行し、それを標準出力に置き換えます。二重引用符内にない場合は、単語の区切りとファイル名の生成が行われます。だからash
zsh
yash
``
$()
$()
chmod 777 $(pwd)
次に交換する必要があります。
chmod 777 "$(pwd)"
現在の作業ディレクトリパスで単語の分割やファイル名の生成を防ぎます。
またはより良い(ディレクトリ名が変更された場合はzshなどの一部のシェルでは除外)。
chmod 777 "$PWD"
以降は、$PWD
POSIXシェルの現在の作業ディレクトリへのパスを保持する特別な変数です。
または、より良い方法は次のとおりです。
chmod 777 .
.
現在のディレクトリのエントリは、ディレクトリ自体へのハードリンクであるためです。
答え3
これは$()
、主に他のコマンド内でコマンドを実行するために使用されます。
chmod 777 $(pwd)
pwd
このコマンドは現在の作業ディレクトリを提供します。したがって、プロセス全体が実行されると、pwdの出力はpwdの引数としての場所を置き換え、chmod
結果として現在の作業ディレクトリはすべて本番777
環境で絶対に使用しないでください。 ;)