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ランキング
-
Python... 環境設定 初心者です...
-
ITパスポートの勉強をしていま...
-
Adobe Premiere Proについて教...
-
Google ColaboでGUI作成
-
vba クリップボードクリアにつ...
-
VBA 電話番号の正規表現について
-
バッチファイルが保存されてい...
-
大学のゼミのレポートがムカつ...
-
プログラミングサイトについて。
-
プログラミング ソースコード
-
Windowsのアプリ開発ってなんの...
-
入力された文字列が、LD22000を...
-
テキストファイルのファイル名...
-
Processingについて
-
過剰なオブジェクト指向脳から...
-
pythonにてseleniumを使うも、...
-
htaccessで特定のディレクトリ...
-
このURLで広告を出しているのは...
-
pythonでのカーソル移動がずれる
-
VBAでパワーシェルを実行したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
AIの登場でプログラマーたちが...
-
プログラミングのPythonのnoteb...
-
ImageMagickでgif画像の一部が...
-
過剰なオブジェクト指向脳から...
-
プログラム言語について。
-
VBAでパワーシェルを実行したい...
-
40代後半でゼロからのプログラ...
-
プログラマーと学歴の関係性に...
-
Google ColaboでGUI作成
-
VBA 電話番号の正規表現について
-
プログラミング未経験者(殆ど未...
-
CLispのloop内の挙動について
-
GoogleAppsScript文字列置換の...
-
プログラミング初心者です。 Wi...
-
オブジェクト指向プログラミン...
-
楽しくて最高のプログラミング...
-
Selenium4でボタンをクリックで...
-
pythonで複数画像からgifを作る...
-
小学1年生の子です。塾に行かせ...
おすすめ情報