ナンクル力学系

学んだ事を書き連ねていこう。

Posts Tagged ‘shell script

YASnippetでshell-script-mode

leave a comment »

「snippets/text-mode/shell-script-mode/」以下に置くだけかな、と思ったらそうじゃなかった。「snippets/text-mode/sh-mode/」に置かなきゃいけなかった。

これでグラフ書いたりファイル処理したりするスクリプト書くのが少し早くなる、かも。

Written by tkf

November 14, 2008 at 11:48 pm

Posted in PC

Tagged with , ,

shell scriptでテンポラリファイルを作成する方法

leave a comment »

「mktemp」というコマンドを使う。

tmp_file=`mktemp` || exit 1
# $tmp_file を使った処理
rm -f $tmp_file

本当は$tmp_file を使った処理中にエラーで終了しても「rm -f $tmp_file」が実行されてテンポラリファイルが消えるように、とかしないといけないんだろうけど。

直前の記事のスクリプトを書くために調べた。

Written by tkf

November 8, 2008 at 4:04 am

Posted in PC

Tagged with

screenで指定範囲内にあるwindowをすべて表示するスクリプト

leave a comment »

このスクリプトをscreenの中で「script_name.sh 3 15」とかで実行するとwindow idが3番から15番までのwindowが一覧表示される。何をやっていたかが一目で分かって便利。

計算中のプログラムの進行状況をチェックするのに使っている。

実行するとこんな感じに:

実行するとこんな感じ

実行するとこんな感じ

ソース:

#!/bin/sh
tmp_file=`mktemp` || exit 1
last=`expr $2 - 1`

echo "only" >> $tmp_file

for i in `seq $1 $last`
do
    echo "split" >> $tmp_file
done

echo "focus top" >> $tmp_file

for i in `seq $1 $2`
do
    echo "select ${i}" >> $tmp_file
    echo "focus down" >> $tmp_file
done

#cat $tmp_file
#echo $tmp_file
screen -X source $tmp_file

rm -f $tmp_file

「screen -X コマンド」や「screen -X eval “コマンド” “コマンド” “コマンド” …」を使うとなぜか他の端末のscreenで実行されるので、仕方なくテンポラリファイルを作成して「screen -X source テンポラリファイル」としている。もしかしたらもっとスマートな方法があるかも。

Written by tkf

November 8, 2008 at 3:54 am

Posted in PC

Tagged with ,