rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

shell

shell

shell script, シェル, シェルスクリプト
2017 Dec. 09.
2017 Nov. 20.
2017 Nov. 19.

文字列展開・変数展開

展開の順序
  ブレース展開、チルダ展開、パラメータ ・変数・算術式展開、コマンド置換 (左から右へ)、単語分割、パス名展開。

 引用符を使うと、 特定の文字や単語が持つシェルに対する特別な意味をなくせる。
 引用符を用いると、特殊文字の特殊な扱いを無効にしたり、 予約語予約語として識別されることを防いだり、 パラメータの展開を防いだりできる。

引用符で囲むのは各種展開をしたくない場合
  " と ' で、抑止される展開の範囲に違いがあるが、展開をしたい場合は囲まない。

 DIR=~/ :引用符で囲んでいないので、展開のルールに従って展開される。チルダ展開が行われる。

 DIR="~/" :二重引用符で囲んであるので、チルダの特殊な意味が無くなっている。チルダ展開は行われない。


 変数展開

${#VAR}     `${#変数名}' とすると変数の値の文字数が得られる

デスクトップ上でフォーカスのある(アクティブな)ウィンドウを取得

xpropを利用する。

デスクトップ上でフォーカスのあるウィンドウを取得した上で、画像を表示し、1秒後にフォーカスのあったウィンドウにフォーカスを戻す例
  activeWin=`xprop -root _NET_ACTIVE_WINDOW`
  activeWinId=`echo ${activeWin} | grep -Eo '0x[0-9a-fA-F]+,' | grep -Eo '0x[0-9a-fA-F]+'`
  display hoge.jpg
  sleep 1
  wmctrl -i -R ${activeWinId}

ファイルの1行ずつの読み込み

cat $1 | while read line
do
  # DO-SOMETHING
  echo $line
done