簡単なスクリプトを実行しようとしています。 gitリポジトリをディレクトリに複製し、cd
そのディレクトリに複製してインストールスクリプトを実行します。
スクリプトはMakefileにあります。
しかし、cd
うまくいかないようです。私のインストールスクリプトが見つかりません。
後でスクリプトにパスワードを追加しましたが、ここにcd
入力したディレクトリではなく、スクリプトを実行したディレクトリが表示されますcd
。
問題は何ですか?
git clone http://somerepo ~/some_dir
cd ~/some_dir/
pwd
python myscript.py install
=>
pwd
:/hereIsPathToDirectoryFromWhichIRunTheScript
python: 'setup.py' ファイルを開けません: [Errno 2] そのファイルやディレクトリはありません
にも適用されません./setup.py
。
絶対パスを入力すると、~/some_dir/setup.py
同じフォルダ内のリソースにアクセスしようとするため、後でスクリプトが失敗します。
ベストアンサー1
makefileを使用しています。 Makefile はスクリプトではなく、各行は新しいシェルで実行されます。これは、行内の環境を変更すると(たとえば、cd
)変更が次の行に伝播されないことを意味します。
解決策は、コマンド間のコンテキストを維持したい場合は、同じ行ですべてのコマンドを実行することです。すべてのコマンドは同じシェルで実行され、環境は保存されます。
たとえば、
target:
git clone http://somerepo ~/some_dir
cd ~/some_dir/ && python myscript.py install