インターン2週目ほどして

インターンを開始して多分2週目くらいになるのではないかなと思います。

初日は社長とお話など(打ち合わせ)をしてだいたい時間は潰れてしまいましたが、この日から黙々と勉強が始まりました(業務をやらせてもらえるのはLinux、Bシェル、MysqlPerlが終わるまでなのでそれまで自分で勉強)。

 

まず僕は、UNIXLinuxなどの知識があまりなかったため、楽しいUNIXという本を渡され、それをやることになりました。この本は基本的なUNIX系コマンドの基礎を覚えるためにさっと読み終えるという感じでした。もともと知っているところは飛ばしても良いということだったので、2日目には読み終えてました。

その次に渡された本は、実習UNIXシェル第2版というちょっと古いものでした。若干動きが変だったり、楽しいUNIXに比べるとやはり難易度が上がったという印象でした。実際この本で行ったところは一番最初の章の楽しいUNIXでやったところの復習と業務で使うのは主にBシェルのようなのでそこだけを読み終えるだけでしたが、3,4日は読み終えるにかかってしましました。

 

実習UNIXシェルが読み終えた頃、どこまで覚えられているか、すんなりコマンドが出てくるようになるまで反復させて覚えさせるという元、社長から簡単な?課題が出されました。

 

課題の内容は、ファイル漢字変換コードを作成するというものでした。

仕様など詳しい条件が提示されているため、かなり解きやすかったです。以下より、自分で作成したものを合っているのか分かりませんが、確認を込めて記載します。

 

 

仕様等:

・漢字変換はiconvコマンドを使う。

・パラメータチェックを行う

1.パラメータは4つないと×

2.パラメータ3は存在していないと×

  また、0バイトも×

3.パラメータ4は存在してい0バイトの時は、警告メッセージを表示してスルー

4.パラメータ4は、存在していて0バイトより大きい場合は×

5.パラメータ1=パラメータ2は×

6.パラメータ3=パラメータ4はOK(この場合は、一旦作業ファイルを使って元を破壊しないように)

以上

 

コード:

#!/bin/sh

ここからBシェルを読みますという決まり文句

 

・パラメータが指定されているか確認を行う。$1=$2はエラーにするようにする。

if [ ! "$1" -o  ! "$2" -o ! "$3" -o ! "$4" ]; then     #$1~4に値がないなら

        echo "Error: parameter is no value"

        exit 9

#$1と$2は同じ引数を指定させない

elif [ "$1" = "$2" ]; then    #$1=$2なら

        echo "Error: $1,$2 value is equal"

       exit 9

fi

ここはまぁこんな感じで良いと思います。

 

・値の確認ができたので$1~4を変数にする。ここでは特に意味を持たないので名前は適当にpar1~4とする。

par1="$1"

par2="$2"

par3="$3"

par4="$4"

変数にしないとあとで仕様変更した時に変えるのが大変。

 

・par3というファイルが存在しているのか確認を行う。同時に0バイトじゃないかも判定する。存在していない場合とファイルサイズが1バイト以上ならエラーにする。

if ! [ -f $par3 ]; then   #$par3のファイルが存在しないなら

        echo "Error: $par3 is no file"

        exit 9

elif ! [ -s $par3 ]; then #$par3のファイルサイズが0バイトなら

        echo "Error: $par3 is no data"

        exit 9

else

        outf=$par3 #変数outfに$par3を代入

fi

ファイルの存在の有無やファイルサイズを調べてパラメータチェックをする時、テストコマンドを使えばよかっただけだったがしばらく悩んでしまった。本で読んだことをまるで覚えていなかった....

 

・par4は、存在していて0バイトの時は、警告。存在していて1バイト以上はエラーとする。

if ! [ $par3 = $par4 ]; then

        if [ -f $par4 ]; then

                true

                if [ ! -s $par4 ]; then

                        echo "Warrning"

                else

                        echo "Error: $par4 file is exist"

                        exit 9

                fi

        fi

else

        cat $par3 >$par3.tmpf

        outf=$par3.tmpf

fi

par4が存在していて1バイト以上はエラーなのに、par3=par4を認めるということは、矛盾している(par3は1バイト以上でないとダメなので)。ここで詰まってしまいました。ここはif ! [ $par3 = $par4 ];ならという否定の文を入れることで、par3=par4を回避させました。

 

iconv -f $par1 -t $par2 $outf > $par4

これはそのままですね。

 

以上

 

 

こんな感じで一応うまく動きました。少し時間をかけてしまいましたが、慣れるまでは仕方ないかな...これからガンガン頑張って行きたいと思います。

祝日で休みや用事などで休んでしまったため、他のインターンの子よりだいぶ遅れてしまっているので急がねば。まぁ3週早く向こうはインターンを始めているので気にし過ぎもよくないと思いますけどね(笑

 

 

ではでは〜

明日からエンジニアインターン開始

はじめまして、とある声豚?大学生の空乃です。

 

今まで私は、Webデザインを中心にHTML,CSS,JavaScriptを勉強してきたのですが、全く勉強してこなかったサーバーサイドの仕事を請け負っている企業様でインターンをさせて頂くことになりました!

サーバーサイドと言っても、Webサービスを行うようなものではなく、バッチ処理系の本当の裏のお仕事です。

今回なぜ僕がこのインターンを受けようと思ったかと言いますと、以前からWebサービスなどのサーバーサイドのお仕事に興味があったからです。しかし面接を受けてみれば、バッチ処理という全然違うものでした。こんな本当の裏だとは思っていなかったので正直ビビりましたが、何事も挑戦してみたいと思い、その意志を伝えるとなんとインターンを採用してもらえたというわけです!

 

そんなこんなで明日、インターンが開始します。

そして、記録をつける・復習をするという意味を込めてはてなブログを始めてみることにしました。記録をつけられるものをやるかは分かりませんが、記録をつけられそうな時は随時更新していきたいと思います。

 

TwittersoranoWeb

良ければフォローお願いします!