.commandファイルに複数のcdコマンドを指定する


0

私はとても小さい .command このファイルは、基本的にはPythonプロセスを起動するためのもので、Macサーバー上にセットアップされています。端末を開いて「python」と入力してからファイルをドラッグするよりも、他の人が使うのがより直感的です。

ただし、スクリプトはサーバー上のファイルを処理し、それが含まれているのと同じディレクトリから処理する必要があるため、最初にディレクトリを変更する必要があります。問題は、このファイルを使用する2人のパスが異なることです。サーバの設定方法のためです。

同じパスを持つようにサーバーを変更することはできないので、代わりに試してみることにしました cd のコマンド 両方 パス、それはうまくいくようです。一方のパスは常に存在するわけではなく、もう一方のパスは実行中に失敗します。

cd /Volumes/Server/scripts/Script
cd /Volumes/Macintosh\ HD2/Server/Scripts/Script
python Process.py

これは私にこの応答を与えるでしょう:

/Volumes/Server/scripts/Script ; exit;
/Volumes/Macintosh\ HD2/Server/Scripts/Script: line 2: cd: /Volumes/Macintosh\ HD2/Server/Scripts/Script: No such file or directory
### My script runs here with the correct path ###

これはうまくいくようですが、何らかの理由で1人のユーザーが両方のパスを有効なパスとして使用していると、問題が発生することがわかります。これが他の問題につながるかどうかもわかりません。たとえそれがエラーが黙って通過するように見えても、私はそれらが決して問題を引き起こさないであろうと確信できません。それで、私は質問に2つの部分があります、このようにコマンドを使うことの不利な点は何ですか、そして私がこれを設定するべきより良い方法があります .command ファイルアップ?

回答:


1

ディレクトリを入力する前に、特定のディレクトリが存在するかどうかを判断するために、少しロジックを使用します。

if [ -d "$DIRECTORY" ]; then
    # Control will enter here if $DIRECTORY exists.
fi

(見る https://stackoverflow.com/questions/59838/check-if-a-directory-exists-in-a-shell-script

このようにして、一方、両方、またはどちらのディレクトリも存在しないときの動作を制御できます。


まさに私が必要としていたもの!私はシェルスクリプティングの習得にうんざりしていましたが、私に役立つ多くの情報を得ました。
SuperBiasedMan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.