この質問にはすでに回答があります:
コメント
bad '。
@KennyEvittを重複として閉じることは、質問が悪いことを意味するものではありません。この質問は永遠にここに残り、答えられます。現在の作業ディレクトリを取得する方法を本当に知りたい場合は、ここで答えを見つけることができます。コマンドの出力を変数に保存する方法を知りたいだけの場合は、重複へのリンクをたどることで、ここで答えを見つけることもできます。いずれにせよ、これは'私が一人でやるべきことではありません。再開する必要があると強く感じた場合は、 Unix&Linux Meta このような問題を解決する必要があります。
回答
あります「それを行う必要はありません。すでに変数に あります:
$ echo $PWD /home/terdon
PWD
変数はPOSIXによって定義されたであり、すべてのPOSIX準拠のシェルで機能します:
PWD
シェルとcdユーティリティによって設定されます。シェルでは、値は次のように環境から初期化されます。 PWDの値が実行時に環境内のシェルに渡される場合、その値は、終了ヌルバイトを含む{PATH_MAX}バイト以下の現在の作業ディレクトリの絶対パス名であり、値には含まれません。ドットまたはドットドットのコンポーネントの場合、シェルはPWDを環境からの値に設定する必要があります。それ以外の場合、PWDの値が実行時に環境内のシェルに渡されると、その値は現在の作業ディレクトリの絶対パス名であり、値にドットまたはドットドットのコンポーネントが含まれていません。シェルがPWDを環境からの値に設定するか、PWDをpwd-Pによって出力されるパス名に設定するかは指定されていません。それ以外の場合、shユーティリティはPWDをpwd-Pによって出力されるパス名に設定します。 PWDが環境からの値に設定されている場合、値には、シンボリックリンクタイプのファイルを参照するコンポーネントを含めることができます。 PWDがpwd-Pによって出力されるパス名に設定されている場合、現在の作業ディレクトリまたはそのディレクトリの親に対して、そのパス名を決定するための十分な権限がない場合、PWDの値は次のようになります。不特定。この変数への割り当ては無視できます。アプリケーションがPWDの値を設定または設定解除する場合、cdおよびpwdユーティリティの動作は指定されていません。
より一般的な答えについては、コマンドの出力を変数に保存する方法は、コマンドを$()
または` `
(バッククォート)で囲むことです。
var=$(command)
または
var=`command`
2つのうち$()
<command0 $(command1 $(command2 $(command3)))
のような複雑なコマンドを作成する方が簡単なので/ div>をお勧めします。
回答
dir=$(pwd)
これは移植性が高く、バックティック方式よりも優先されます。
$()
を使用すると、コマンドをネストできます
例:mech_pwd=$(pwd; echo in $(hostname))
コメント
回答
環境変数、または次のように記述します:
dir=`pwd`
回答
pwd
コマンドの出力を変数に保存するには、コマンド置換を使用する必要があります。コマンド置換では、バッククォートまたはドル文字を使用できます。このように:
$ mkdir "/tmp/new dir" $ cd "/tmp/new dir" $ CWD="$(pwd)" $ echo $CWD /tmp/new dir $ cd ~ $ echo $CWD /tmp/new dir $ pwd /home/ja
回答
現在の作業ディレクトリの値は異なる。シンボリックリンクを使用して現在のディレクトリを取得した場合、pwdは/ usr / bin / pwdとは異なる結果を返します。 bashを使用しているので、次を使用します:
dir=$(/usr/bin/pwd)
またはコメントに従って:
dir=$(pwd -P)
ネストできないため、逆引用符は好きではありません。
コメント