かべぎわブログ

技術的なことについてかけたらいいな…

シェルスクリプト

IPアドレスを2進数に分解するシェルスクリプト

IPアドレスとサブネットマスクでどこまでがネットワークアドレスなのかがわからなくなることが多かったので作りました。 ちょっとしたひまつぶしに作成したのでエラー処理等まじめにやっていないです。 実行例 こんなかんじで引数にIPアドレスをCIDR表記でわ…

シェルスクリプトがリモートで呼び出されたかどうかを判定する

シェルスクリプト内でリモートで呼び出されたか否かを判定してみたいと思います。 具体的にはremsh script.shと./script.shそれぞれで実行したときに違う結果を返すようなスクリプトをつくります。 コード ShellScript 結果 ・ローカルで実行 # ./remote_scr…

シェルスクリプトのデバッグ時に使えるbashのオプション5選

シェルスクリプトをデバッグしていてよく使うオプションを5つ紹介します! /bin/bash -e ./script.sh シェルスクリプトの中でエラー(終了ステータスが0以外)が発生した場合、そこでスクリプトを終了します。 ただし、自分の意図と反して終了することもあるの…

【シェルスクリプト】自分自身のPATHを取得する方法【絶対パス/相対パス】

今回はシェルスクリプト内で自分自身のPATHを取得する方法を紹介します。 相対パスを取得する 以下のようなスクリプトを用意します。 #!/bin/bash dirname ${0} たとえば/home/user/kabegiwa配下にsoutai_path.shとして上のスクリプトを用意した場合、実行結…

sshコマンドでシェル変数を扱うときはエスケープすること【シェルスクリプト】

シェルスクリプトを書いていてひさしぶりにハマってしまったのでメモ。 つまったこと sshコマンドをつかってリモート先のシェル変数を実行したい。 たとえばホスト名が「LOCALSVR」というサーバから「REMOTESVR」というサーバへsshで以下のようなコマンドを…

シェルスクリプトのcase文でYESorNOの大文字小文字を区別しない方法

シェルスクリプトでwhile read -pとcaseで対話式のスクリプトを作っているときにちょっとはまったので備忘録的に残しておく。 やりたいこと スクリプトで以下のように聞かれたときにyでもYESでもYesでもいいよって判定させたい。 ほんとうにいいですか? [y/n…