設定ファイルを読み込むスクリプト

設定ファイルを読み込むスクリプトを
while をつかって記述するには
まずは
SETOMGDIR=”設定ファイルのパス”
で変数に設定ファイルのパスを設定して
while read path;do
処理内容
done < $SETINGDIR というように、 < を使って標準入力をリダイレクト そして、read コマンドを使うことで 設定ファイルを1行ずつ読み込んで 変数 path に代入していく 設定ファイルによくある、コメントアウト これの対処方法は if [ -n "`echo $path | grep '^#'`" ]; then continue fi というように ^#で行頭に#がある部分を見つけて スキップすれば対処できる -n は 文字列の長さが1文字以上 つまり、空白行は省くので、これで空行もとばせる

リダイレクトと標準入力

シェルのコマンドは
データを受け入れる入り口として
標準入力
出口には
標準出力がある
標準入力はキーボードからの入力
標準出力は端末への結果表示という感覚でOK
これをリダイレクトという機能をつかうことで
ファイルに記録するようにすることができる
< は標準入力のリダイレクト 標準入力のリダイレクトの使い道は 設定ファイルの読み込みとかに使う この機能を使うことで 設定ファイルをつくり、それをもとにバックアップなど の処理を行うことができる >> は標準出力のリダイレクト
これはファイルの追記に使う
追記される場所は、ファイルの最終行
>もあるけど、こっちはファイルを上書きするので
つかうときには注意

シェルスクリプトでの

シェルスクリプトで
1増やすというときには
n=$((${n}+1))
というように
$(( )) の中に記述する
$(( )) の中に書いた場合は
計算結果が返される
もし
n=1
なら
$((${n}+1))


注意点としては
$(( ))
で囲まずに”” とかで囲むと
文字列になってしまう
試しに
端末を開いて
n=1
として
echo $n
とすると
1
が表示される
では
これを
echo “$n+1”
とすると
1+1
とでてくる
今度は
echo $((n+1))
とすると
計算結果の2がでてくる
Screenshot-2012-12-13 21:19:59

シェルスクリプトで使う条件式

シェルスクリプトで条件式を書くときによくでてくる
条件をメモ
-n 文字
文字の長さが1以上なら真
-z 文字
文字の長さが0なら真
文字1 = 文字2
文字1と文字2が一致するなら真
文字1 != 文字2
文字1と文字2が一致しないなら真
整数1 -eq 整数2
整数1と整数2が一致するなら真
整数1 -gt 整数2
整数1が整数2より大きければ真
整数1 -lt 整数2
整数1が整数2より小さければ真
整数1 -ne 整数2
整数1と整数2が一致しないなら真
-f ファイル
ファイルが通常ファイルなら真
-x ファイル
ファイルが実行可能なら真
!条件式
条件式の否定
つまり、条件にあてはまらないなら真
条件式1 -a 条件式2
条件式1と条件式2がともに真なら真
&&と同じかんじ
条件式1 -o 条件式2
条件式1か条件式2、いずれかが真なら真
||とおなじ

Ubuntu 11.10 でF10が使えるように設定

ubuntu 11.10 で日本語入力しているときに
F10をおすとメニューがでてきて不便なので
カスタマイズします
Ubuntu 11.10 で Unity の F10 対策
を参考に
Ubuntu ソフトウェアセンターで
CompizConfig Settings Manager
を検索し、インストールします
次に、Lens で
CompizConfig Settings Manager
を探して
デスクトップ > Ubuntu Unity Plugin >
Behaviourタブ のF10をクリックして無効にすれば
いままでどおり F10で変換できるようになります

ローカルストレージとセッションストレージ

ローカルストレージとセッションストレージ
Web Storageには
localStorageと
SessionStorageがある
永続的にデータ保存したいなら
localStorage
localStorageは
PC電源を落としても、ブラウザーを閉じてもデータは残る
SessionStorageは
同一セッションのみ共通のデータを読み書きできる
セッションが違うとデータのやりとりはできない
例えば、ウィンドウを開き
新規にウィンドウをまた開いたときに
同一オリジンなら、2枚のウィンドウでやりとりできる
ちなみに、オリジンは
プロトコル+ドメイン+ポート番号のこと
プロトコルはTCP/IPをやったことのある人にはおなじみで
httpとかhttps FTPなどなど
転送の規格
ドメインは
http://のあとにある
yahoo.co.jpとか
携帯の
@ezweb.ne.jp
とかの部分
ちなみに、携帯メールのドメイン指定は
これを指定するやり方
ポート番号は
通信の番号のことで
サーバー構築することがあるなら必須知識
です
httpなら80
tomcatだと8080だったりします
詳しくはウェルノウンポートで検索するとでてきます
httpは平文で、パケットキャプチャなどで
通信傍受されますが
httpsは暗号化されるため
安全性があがります
ちなみに、ポートも463ポートになります
話をオリジンに戻しますが
ドメインとプロトコルが一緒でも
このポートが違うなら、オリジンは同一ではないと判断されます
また、ブラウザーを終了したり
ウィンドウを閉じると、セッションは終了します
セッションが切れた場合、
sessionStorageのデータは消えます
このため、一時的データの取り扱いには
sessionStorageを使います

while [ $# -ge 1 ] の 意味

シェルスクリプトのwhileで使われる
while [ $# -ge 1 ]
これは、引数の数が1以上なら
という意味
ほとんどの場合は無限ループになります
geは
greater or equal
意味は
引数の数が1以上なら
無限ループから抜けるときに使われるのが
shift
shiftは、引数の数を取り除く
このため、これと組み合わせれば
条件をみたせば,
無限ループから抜けるという設定ができる

wordpress で最低限必要なもの

wordpress で利用可能なテーマを作成するのに
最低限必要なのは
index.php

style.css
index.phpは
得に記述しなくても
テーマを構成するファイルとして機能する
style.css はテーマとしての宣言を冒頭に記述しないとだめ
あと、管理画面の
外観>テーマでスクリーンショットを表示するためには
screenshot.png
が必要
これの作り方は
トップページのスクリーンショットをとって
画像サイズを
300 x 225 ピクセルにする
ファイル名は
screenshot.png
として保存

if [ $# lt -1 ] の意味

if [ $# lt -1 ] の意味
これは、シェルスクリプトでよくあるifの典型的な書き方
[ ] は中の条件式を評価する sh の test コマンド
じつは [ と ] がコマンドになっている
なので、空白を開けるようにして書く
lt は
less than という意味で
日本語にすると~より小さいという意味
$# は引数の数という意味なので
この
if [ $# -lt 1 ]
という意味は
引数の数が1より小さいならという意味になります
これは、エラー処理とかで使われます
ほとんどのコマンドの場合は
引数があるので、これで判別可能です
たとえば
cd コマンドなら
cd /home
なら
/home
が引数になります
このためエラー処理を書くときには
ほとんどの場合なら
if [ $# -lt 1 ]:then
echo “エラーメッセージ”
exit 1
fi
という書式になります
exit 1 はエラー終了になります
C言語とかやっているとよくみかける終了の仕方です

シェルスクリプトの注意点

シェルスクリプトの注意点についてのメモです
シェルスクリプトでは
java script のように、変数に値を代入できます
もちろん、変数にディレクトリのフルパスを代入することもできます
ただし、注意点として、=のあとに空白をいれてはいけないということ
例えば、
BKPREFIX=”/backup/dirback”
というときに
BKPREFIX= ”/backup/dirback”
とすると意味が変わってしまう
これは、シェルスクリプトでは
スペースをあけてしまうと
コマンドとして認識されてしまうから
なので
BKPREFIX= ”/backup/dirback”ので
としてしまうと
BRPREFIX というコマンドをつかったと解釈されてしまう