web-dev-qa-db-ja.com

新しいワークスペースのルートディレクトリからコマンドを実行する

pythonファイルのセットを実行するために特定のディレクトリにcdするシェルスクリプトがあります。これでソースコード管理(スクリプトとpythonファイル)これをJenkinsワークスペースにクローンし、そこからファイルを実行したい。スクリプトは現在、Jenkinsワークスペースではなくローカルリポジトリにcdするように記述されているため、リポジトリのクローンは冗長になっています。同じマシンに存在するローカルファイルの代わりに、Jenkinsワークスペースに存在するファイルを認識してそこから実行するようにcdコマンドを記述しますか?

2
shanwar

私が正しく理解していれば、testディレクトリをスクリプトと同じ場所に配置する必要があります。

スクリプトの場所は、次のように取得できます(スクリプトを実行したときの現在のディレクトリに関係なく)。

MYPATH=`dirname \`readlink -e "$0"\``

次に、たとえば、

cd "$MYPATH/test"

説明:

$0は、スクリプトの名前(パスを含む)です。

readlink -e /foo/barは、/ foo/barの絶対位置を示します(シンボリックリンクも解決します)。

dirnameはファイル部分を切り取り、パスだけを残します

0
Mark Smith