0

Mac OSX (マウンテン ライオン) では、シェル スクリプト "a" があります。

#!/bin/bash
open -a Terminal b

ターミナルを使用して別のシェルスクリプト「b」を実行します。

echo `pwd`

興味深いことに、実行中のスクリプトがどこにあるかに関係なくpwd、"b" のコマンドは常にホーム ディレクトリを返します。

質問:

  1. なぜこれが起こるのですか?
  2. 実行中の環境をホーム ディレクトリではなく作業ディレクトリに設定する方法 (つまり、に到達したときに作業ディレクトリを返すpwd)
4

2 に答える 2

1

私はubuntu Linuxユーザーですが、両方のcliが非常に似ていると確信しています。とにかく、新しいターミナル ウィンドウを開いたときのデフォルト ディレクトリはホーム ディレクトリだと思います。設定で変更しない限り。これが、"b" の pwd コマンドがホーム ディレクトリを出力する理由と考えられます。

于 2013-08-22T22:24:52.950 に答える
1

これはおそらく次の環境で動作しbます:

echo $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
于 2013-08-22T22:25:19.887 に答える