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