--.--.--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2010.04.10

第375夜 其の1

shellのお勉強4日目・・・。

 シェルもよく分からないとか言ってる場合じゃなくなってきた(/ω\)構文とか言語でそうそう変わるものじゃないけど(一概にはいえないけど)、なんでシェルとかperlとか拒否反応がでるんだろうか?$0とか記号が覚えづらいからなのか、それとも省略が色々許されていて覚えきれないからなのか・・・?
この記事へのトラックバックURL
http://hexagram.blog41.fc2.com/tb.php/404-8d33ea58
この記事へのトラックバック
この記事へのコメント
Q.「~/*」って何を言ってるの?

A.ディレクトリやファイルを全て表しているらしい。例えば「echo "$1"/*」ならば第一引数で指定したディレクトリ配下の全てのディレクトリ・ファイルをスペース区切りで表示することになる。
Posted by hexagram at 2010.04.10 10:33 | 編集
Q.処理時間を計測したい場合は?

A.「time シェルスクリプト名」で計測できる。
シェルスクリプトの中の一部処理を計測するならば開始と終了の時間を取得して行う方法がある。下記は一例。

#!/usr/bin/ksh

START=`date +%s`

#処理したい内容を記述
for i in `seq 1 1 300000`
do
echo $i
done

END=`date +%s`

SS=`expr ${END} - ${START}`

HH=`expr ${SS} / 3600`
SS=`expr ${SS} % 3600`
MM=`expr ${SS} / 60`
SS=`expr ${SS} % 60`

echo "${HH}:${MM}:${SS}"
Posted by hexagram at 2010.04.10 10:57 | 編集
Q.ファイルの行数を調べる方法は?

A.「wc -l ファイル名」でいける。
Posted by hexagram at 2010.04.10 11:05 | 編集
Q.シェルスクリプトで配列の使用方法は?

A.こんな感じ?

#!/usr/bin/ksh

cnt=0
while read line; do
ARRAY[$cnt]=$line
cnt=`expr $cnt+1`
done < $1

i=0

while (( $i < $cnt ))
do
echo ${ARRAY[$i]}
i=$i+1
done

ただし、kshは配列の確保の最大が1024と決まっているらしく、それ以上はエラーになるらしい。
Posted by hexagram at 2010.04.10 17:50 | 編集
管理者にだけ表示を許可する
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。