No.3ベストアンサー
- 回答日時:
作法という範囲では気にする必要はありません。
正しく動くなら相対バスでいいです。ただし、カレントディレクトリが特定の階層で無いと正しく動かないスクリプトになってしまいますが、それでいいのでしょうか?
状況が書かれていないので、該当しないかもしれませんが、通常は、親スクリプトのディレクトリからの相対で指定するのがよいでしょう。親スクリプトと同じディレクトリにあるsetenv.shを起動するなら、
SCRIPT_DIR=${0%/*}
$SCRIPT_DIR/setenv.sh
です。( ${0%/*} で親スクリプトファイル名を削除してディレクトリ名を求めます)
この回答への補足
すみません。以下を実行してみたのですが、「文法があいまいです」というエラーがでてしまいました。
SCRIPT_DIR=${0%/*}
$SCRIPT_DIR/setenv.sh
${0%/*}これは正規表現か何かでしょうか?
OSはSunOS 5.9です。
No.4
- 回答日時:
>${0%/*}これは正規表現か何かでしょうか?
>OSはSunOS 5.9です。
Linuxのカテゴリでの質問だったので、bash前提で回答しました。
SunOSならSolarisカテゴリが適当です。
bashが使えないとすると、
SCRIPT_DIR=`expr "$0" : '\(.*\)/'`
でディレクトリが取り出せます。「最後に出てくる / の手前まで」を取り出すという意味です。
No.2
- 回答日時:
そのスクリプトを起動するときに、いつもその相対ディレクトリが有効なディレクトリで起動するなら構わないです。
例えばそのスクリプトが環境変数に入っているとしたら、スクリプト名さえ打てばどのディレクトリからでも起動できてしまいますが、相対パスで指定した先に使用するファイルがなければエラーになります。
またcronで動かす際にも問題が起きるかもしれません。
そのような理由で、普通はフルパス(絶対パス)で記述するのが安全とされています。
要は動きさえすれば、あとはあなたのお好みでどうぞ、ということです。
No.1
- 回答日時:
お作法かどうかは知らないが、よく使われているのは環境変数を使う方法やね。
たとえばApache Tomcatの$CATALINA_HOME、Oracle Databaseの$ORACLE_BASEと$ORACLE_HOME。
相対パスもよく使われていると思いますわよ。たとえば、hogehoge.shとhogehoge_env.shなどがある場合、hogehoge.shの中で「. ./hogehoge.env.sh」などと書かれてある事も多いんじゃないかな。これはれっきとした相対パスだよね。
個人的には、配布物そのものの形できちんと実行できるのであれば、相対パスにしてもそんな問題は無いと思う。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) VBSで作成した相対パスのショートカットが他者と共有できません。 1 2022/09/05 11:20
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- 統計学 相関関係とパス係数の関係 1 2023/03/26 20:07
- Windows 10 WIN10(MAC-bootcamp)で 起動時のパスWが どうにもならない 2 2023/06/30 11:40
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- 電車・路線・地下鉄 仙台~大宮間の週末パスを利用したはやぶさ乗車について 2 2022/09/19 19:50
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) batにて、異なるフォルダの同名ファイルを参照し、文字列を判別。擬似配列で変数へ格納 3 2022/04/10 03:37
- Windows 10 パスを通す 1 2022/09/10 20:01
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ftpのmgetコマンドの自分の格納...
-
7zを使うとフォルダの中身がす...
-
linuxコマンド mkdirでディレ...
-
lha32 コマンドオプション
-
/(スラッシュ)で区切ったフル...
-
ホームページのディレクトリを...
-
scpによるデータ転送後、ディレ...
-
ファイル名で / (スラッシュ...
-
WriteFileの引数について
-
FTPコマンドのCDについて
-
拡張子.dどういう意味
-
「ドット(.)」と「¥」の意味...
-
squid2.5にてキャッシュを保存...
-
tarコマンドのエラーについて
-
ftpでのフォルダごとの転送はで...
-
"cp -a"と"cp -r"の違い
-
「照合パターンに合いません」...
-
rm できない
-
unzipコマンドでディレクトリな...
-
macで、cdで移動できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
7zを使うとフォルダの中身がす...
-
拡張子.dどういう意味
-
ftpのmgetコマンドの自分の格納...
-
make時に出てきたエラーメッセ...
-
/(スラッシュ)で区切ったフル...
-
ホームページのディレクトリを...
-
「照合パターンに合いません」...
-
linuxコマンド mkdirでディレ...
-
バッチファルの置き場所
-
scpによるデータ転送後、ディレ...
-
「ドット(.)」と「¥」の意味...
-
FTPコマンドのCDについて
-
"cp -a"と"cp -r"の違い
-
Linuxコマンドについて
-
tarコマンドのエラーについて
-
シンボリックリンクについて
-
unzipコマンドでディレクトリな...
-
ファイル名で / (スラッシュ...
-
macで、cdで移動できない
-
FTPでPUTできない原因は何?
おすすめ情報