- ベストアンサー
シェルスクリプト 自身のファイルパスを取得する方法
- シェルスクリプトで自身のファイルパスを取得する方法についての質問です。
- 検索した結果、参考になるページを見つけましたが、特定の記号の意味が理解できません。
- 具体的には、$0や%や/や*の意味について教えてほしいとのことです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- シェルスクリプト 自身のファイルパスを取得する方法
基本的なことかもしれないのですが、教えて下さい。 シェルスクリプトをLinuxで作成しています。 シェルスクリプトを実行して、実行したスクリプトまでの絶対パスを取得したいのですが、方法がわかりません。 いろいろ調べて、 dirname $0 という方法で出来るような記述も見つけたのですが、$0ではスクリプト名を取得することしか出来ず、ファイルパスを取得することが出来ませんでした。 OS : Linux カーネル : 2.6 です。 他に必要な情報があれば教えて下さい。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- shのシェルスクリプトの演算方法について・・・
bashのシェルスクリプトについてもお聞きしたのですが、 その方法では演算ができない!ということになってしまいました・・・ こういうちょこっとしたところが違うのが嫌です・・・↓ bashの場合は ---------- bash$ a=1 bash$ a=$(( $a + 1 )) bash$ echo $a 2 ---------- となったのですが、shではエラーが出てしまいました・・・ また、shのスクリプトもbashのスクリプトもシェルスクリプトと呼ぶのでしょうか?
- ベストアンサー
- その他(OS)
- 【シェルスクリプト】各ディレクトリで一番大きな数字
シェルスクリプト(Ubuntu bash)にて 以下の様なディレクトリ構成で各ディレクトリで一番数字の大きなファイルのパスを取得したいです。 data --0001 ----1 ----2 ----3 --0002 ----1 ----2 --0003 ----1 結果としてはこのように表示したいのですが、良い方法はありませんでしょうか。 data/0001/3 data/0002/2 data/0003/1
- 締切済み
- その他(プログラミング・開発)
- シェルスクリプト間で排他をとりたい
環境 linux(redhat) 使用シェル bash シェルスクリプトAとシェルスクリプトBを作成し、 シェルスクリプトAが動作している間は、シェルスクリプトBの動作を禁止したいと考えています。 例えば、シェルスクリプトAが起動している状態で、シェルスクリプトBが起動されたとき、シェルスクリプトBは、シェルスクリプトAが起動していることを検知して、自発的に処理を終了するようにしたいと考えています。 上記のような仕組みをシェルスクリプトで実現可能でしょうか? 基本的には、シェルスクリプトの先頭で、ある資源のロックを行い、終了時にロックの解放ができれば、その仕組みは実現可能と考えています。 (シェルの異常終了時は、ロックが自動的に解放されることが望ましい) 上記のようなことをシェル(bash)で実現可能でしょうか。 bash単独での方法、もしくはbashからperl,C言語作成の実行モジュールを呼び出す方法でもかまいません。 (ちなみにperl(もしくはC言語作成のモジュール)単独では実現可能なことはわかっています)
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトのbashとperlについて
シェルスクリプトのbashとperlについて 今さら気づいたのですが、PerlもUNIXのコマンドやシェルスクリプトとして使用できるということでしょうか。 RubyやPHPをUNIXのコマンドやシェルスクリプトとして使用することはできますでしょうか。 学ぶとしたら、bashとPerlのどちらが良いでしょうか。 また、シェルスクリプトはどんな用途や利点がありますでしょうか。 Webアプリケーションによるバックアップやログをタイマーでセットして自動的に取得したりすることは可能でしょうか。
- ベストアンサー
- Linux系OS
- シェルスクリプトだけでWakeUpOnLanはできますか?
bashのシェルスクリプトだけでWakeUpOnLanはできますか? 方法や解説サイトがあれば教えてください シェルスクリプトでは無理でしたらC言語のCUIでもいいのでお願いします よろしくお願いします
- ベストアンサー
- その他(OS)
- シェルスクリプトの1行目
シェルスクリプトの1行目に#!/bin/bashと書くと思うのですが 環境によってbashのパスが違うのですが、そのような場合は2つ書くことは可能でしょうか? 例えばLinuxなんかは#!/bin/bashですよね? Macだと#!/bin/bashだと3系なので古いので5系をインストールすると#!/usr/local/bin/bashになるんです 1台のパソコンで使ってる分には問題ないですが他の環境で使う場合2つ書くにはどうしたら良いでしょうか?
- ベストアンサー
- Linux系OS
- シェルスクリプトの記載方法
linuxでシェルスクリプトを書いています サーバ上に「日付のついた*.bak」ファイルが毎日できています これを3日以上経過した*.bakファイルを消去したいので直接 コマンドラインから次のようにキーボードでたたくと正常に消去できます find /root -name '*.bak' -mtime '+3' -exec rm -f {} \; これをシェルスクリプト(sakujyo.bash)として次のように記載し /rootの中におきました ================(sakujyo.bash)===================== #!/bin/bash find /root -name '*.bak' -mtime '+3' -exec rm -f {} \; =================================================== そして # sakujyo.bash と打鍵すると 次のようにエラーとなります -bash: sakujyo.bash: command not found findのpathが通ってないのかとも考えられるのですが・・・ findコマンドは /usr/bin/ の中にあるので次のように記載してみました =================================================== #!/bin/bash cd /usr/bin find /root -name '*.bak' -mtime '+3' -exec rm -f {} \; ==================================================== このようにしても同じエラーとなります 記載方法等教えていただけませんか よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- シェルスクリプトでの絶対パスの取得
UNIXのシェルスクリプトで、引数として渡された相対パスから絶対パスを取得するには、そうすればよいでしょうか。 cd 相対パス 変数=`pwd` これが一番普通のやり方でしょうか。 change directory しなくてもできる方法がないのかなあと思ったもので。
- ベストアンサー
- Linux系OS
- Automatorのシェルスクリプトがエラーの場合
以前こちらで教えていただいた方法で、Automatorのフォルダアクションのシェルスクリプトによるファイルのコピーを利用しています。 その節はお世話になりましてありがとうございました。 今回相談にのっていただきたいのは、下記のスクリプトでフォルダAにあるファイルをWindows7の中のiCloud Driveにコピーしているのですが、コピーできない時が何度かありました。 原因はWindows7との接続が切れてしまったからなのか、他に原因があるのかわかりませんでした。 そこで、コピーに失敗した場合にその原因をメールで通知することは可能でしょうか? 普段はモニターをつけていないので、メールが届いたらチェックすることができて便利なのですが、ネットで検索してもそのものズバリの解決策は見つけられませんでした。 もしメールでの通知が難しそうであれば、エラーのログを残すなどの方法でも構いませんので、ご指導をよろしくお願いします。 Automatorは下記のような設定です。 1. 指定されたFinder項目を取得(Automatorでのテスト用に設定) 2. フォルダの内容を取得 3.シェルスクリプトを実行 ======================================== #!/bin/bash path=$1 folderC=/Volumes/iCloudDrive cp "${path}" "${folderC}"/ ======================================== Mac OS X 10.8.5 よろしくお願いします。
- ベストアンサー
- Mac
お礼
ご回答ありがとうございます! 事前に4時間ぐらいかけて検索しても分からなかったことなのに、 これだけ詳細にご説明していただけたおかげで、 完全に理解することができました。 お礼が遅くなりましたが、 本当にありがとうございましたッ!