
No.1ベストアンサー
- 回答日時:
シェル系のスクリプトは外部コマンドをいろいろ呼び出すため、マニュアルには記載がない事は多いかもしれません。
bashでも同じですが、"dirname $0"コマンドでスクリプトまでのディレクトリ名が取り出せます。
早速のご回答ありがとうございました。
cronで起動させようとしているのですが、dirname $0だと相対パスしか得られない気がするのですが、勘違いしているでしょうか?
例えば同じスクリプトを再利用するとして、
/aaa/bbb/app1/ccc/script.sh
/aaa/bbb/app2/ccc/script.sh
このようにスクリプトの存在するディレクトリ名を認識して処理を変える場合に、dirname $0でやってみたのですが、相対パスしか取れないようでした。
No.4
- 回答日時:
なんとなく負けた気がするけど、
cd `dirname $0`
script_dir=$PWD
で取得できそうです。
スクリプト内でのcdは呼び出し元には影響しないので問題ないかと。
もし元のdirに戻るのであれば、pushd/popdするなり、
cdする前に$PWDを保存しておくなり、cd -するなりで対応できそうです。
ありがとうございました。コマンドラインで$0が絶対パスで出なかったのでそういうものと勘違いしていました。cronからは$0でファイル名が絶対パスで正しく取得でき、dirname $0でディレクトリを取得できました。
No.3
- 回答日時:
dirnameは引数を文字列に取って、最後のファイル or ディレクトリを取り去ってくれるコマンドです。
そのため$0の中身が"/aaa/bbb/app1/ccc/script.sh"であれば、"/aaa/bbb/app1/ccc"が実行結果になります。
$0の中身はどのようにスクリプトを指定したかに依りますので、crontabファイルに"0 * * * * /aaa/bbb/app1/ccc/script.sh"などと書いて実行させれば"dirname $0"の実行結果は"/aaa/bbb/app1/ccc"になります。
テストで"./script.sh"などと実行すれば、"."から始まる相対パスになりますが、cronから実行させて確かめてみてはどうでしょうか。
cronで試さないで返事を書き申し訳ありませんでした。おっしゃるとおり、cronから呼び出したところ$0は絶対パスで得られ、dirnameでディレクトリ名が取得できました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
- Mac OS PATHを使ってcdなどで簡単に移動できるようになりたい 3 2023/05/13 14:22
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- その他(プログラミング・Web制作) powershell で書いたプログラムでcd が動かない 5 2023/04/08 14:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
画像生成AIのプロンプトの作り...
-
Pythonのエラーメッセージをコ...
-
Geminiフォーム 画像生成で 人...
-
VBAでパワーシェルを実行したい...
-
pip --versionがエラーになる
-
CSVファイルの複数行削除
-
google Colabでmatplotlibの描...
-
数学、プログラミング、物理、...
-
パイソンのソースコードをChatG...
-
Python 3.12.2 か一番最新のパ...
-
HTMLソースが表示のページのも...
-
pythonの実行に関する質問
-
OS入ってる機器のソフト・アプ...
-
Python... 環境設定 初心者です...
-
以下の技能を無料で受講できる...
-
文系のSE志望です。プログラミ...
-
Google ColaboでGUI作成
-
プログラミングを学ぼうと思い...
-
VBSでテキストファイルの2行目...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
CSVファイルの複数行削除
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
pythonの実行に関する質問
-
パイソンのソースコードをChatG...
-
画像生成AIのプロンプトの作り...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
Google ColaboでGUI作成
-
Python... 環境設定 初心者です...
-
HTMLソースが表示のページのも...
-
ネットワークフォルダの中身を...
-
MOVEコマンドでサブフォルダー...
-
google Colabでmatplotlibの描...
-
VBAでパワーシェルを実行したい...
-
Pythonでの文字列からfloatへの...
-
Webサイト内に埋め込んだmp4動...
-
初心者powershellのPS1ファイル...
-
pythonについて(初心者です)
おすすめ情報