日経Linuxのシェル・スクリプトの課題をやってやろうじゃねーか

サーバーを初めてまだ半年ですが、シェル・スクリプトってなんじゃいってことで、まーたくわけがわからない感じです。
なので、会社の先輩に教えて頂いた日経Linuxのシェル・スクリプト工房ってやつで練習することにしました。

ここは結構、基礎的なことを中心にしわかりやすいんですが、いかんせんコマンドが違ったりとうまくいかなかったところがあったので、修正しながら勉強したところをまとめていきます。

シェル・スクリプト工房のお題をわけわからんがやってみる

本やネットの説明を見てもなんというか、ふわっとした感じでわかんないっすよね。
じぶんがおバカちゃんなので仕方ないのですが。。。

とりあえず、打ってじぶんの目で確認しろ精神で作っていきます。

第2回 処理内容を確認する。

参考:シェル・スクリプト工房より

ファイルを作成してもよいかという質問に「yes」または「y」と
入力した場合に/root/script_testを作成するシェルスクリプトを作成する。

[root@TEST ~]# ll
合計 108
-rw-r--r--. 1 root root 101 8月 29 16:09 2013 2renshu.sh
-rw-r--r--. 1 root root 167 8月 29 16:22 2013 2test-1.sh
-rw-------. 1 root root 1515 8月 6 05:56 2013 anaconda-ks.cfg
-rw-r--r--. 1 root root 68568 8月 6 05:56 2013 install.log
-rw-r--r--. 1 root root 10721 8月 6 05:54 2013 install.log.syslog
-rwxrwxrwx. 1 root root 96 8月 22 19:14 2013 test-1
-rw-r--r--. 1 root root 185 8月 22 19:23 2013 test-2
-rw-r--r--. 1 root root 135 8月 23 09:33 2013 test-3.sh

まずは”2test-1.sh”というファイルを作成する。

vi 2test-1.sh

#!/bin/sh
TARGET_FILE="/root/script_test"
echo -n "Can I make \"TARGET_FILE\" file? : "
read answer
if [ $answer = "yes" -o $answer = "y" ]
then
touch $TARGET_FILE
fi

 

[root@TEST ~]# ll
合計 108
-rw-r--r--. 1 root root 101 8月 29 16:09 2013 2renshu.sh
-rw-r--r--. 1 root root 167 8月 29 16:22 2013 2test-1.sh
-rw-------. 1 root root 1515 8月 6 05:56 2013 anaconda-ks.cfg
-rw-r--r--. 1 root root 68568 8月 6 05:56 2013 install.log
-rw-r--r--. 1 root root 10721 8月 6 05:54 2013 install.log.syslog
-rwxrwxrwx. 1 root root 96 8月 22 19:14 2013 test-1
-rw-r--r--. 1 root root 185 8月 22 19:23 2013 test-2
-rw-r--r--. 1 root root 135 8月 23 09:33 2013 test-3.sh
[root@TEST ~]#
[root@TEST ~]# sh 2test-1.sh ←シェルを実行
Can I make \"TARGET_FILE\" file? : yes
[root@TEST ~]# ll
合計 108
-rw-r--r--. 1 root root 101 8月 29 16:09 2013 2renshu.sh
-rw-r--r--. 1 root root 167 8月 29 16:22 2013 2test-1.sh
-rw-------. 1 root root 1515 8月 6 05:56 2013 anaconda-ks.cfg
-rw-r--r--. 1 root root 68568 8月 6 05:56 2013 install.log
-rw-r--r--. 1 root root 10721 8月 6 05:54 2013 install.log.syslog
-rw-r--r--. 1 root root 0 8月 29 16:32 2013 script_test
-rwxrwxrwx. 1 root root 96 8月 22 19:14 2013 test-1
-rw-r--r--. 1 root root 185 8月 22 19:23 2013 test-2
-rw-r--r--. 1 root root 135 8月 23 09:33 2013 test-3.sh
[root@TEST ~]#

※script_testが作成された。

質問して入力された2つのファイルを作成するスクリプト

参考:シェル・スクリプト工房第2回(練習問題)

質問して入力された2つのファイルを作成する。

vi 2renshu.sh

#!/bin/sh
echo -n "Which two files would you like to make? : ";
read file1 file2
touch $file1 $file2

それでは以下で実行

[root@t-bobo011 ~]# sh 2renshu.sh
Which two files would you like to make? : test1 test2
[root@t-bobo011 ~]# ll
合計 108
-rw-r--r--. 1 root root   101  8月 29 16:09 2013 2renshu.sh
-rw-r--r--. 1 root root   167  8月 29 16:22 2013 2test-1.sh
-rw-------. 1 root root  1515  8月  6 05:56 2013 anaconda-ks.cfg
-rw-r--r--. 1 root root 68568  8月  6 05:56 2013 install.log
-rw-r--r--. 1 root root 10721  8月  6 05:54 2013 install.log.syslog
-rw-r--r--. 1 root root     0  8月 29 16:32 2013 script_test
-rwxrwxrwx. 1 root root    96  8月 22 19:14 2013 test-1
-rw-r--r--. 1 root root   185  8月 22 19:23 2013 test-2
-rw-r--r--. 1 root root   135  8月 23 09:33 2013 test-3.sh
-rw-r--r--. 1 root root     0  8月 29 17:20 2013 test1
-rw-r--r--. 1 root root     0  8月 29 17:20 2013 test2
[root@t-bobo011 ~]#

2つのファイルが作成された。

まとめ

うっひょー!
できたぜー!

だけど、覚えてませんけどねー。

ほんとにこりゃ、何度も自分で作って、何度も挫折していかんといかん気がします。

これからもどんどんいろんなシステムを作成してい来ますが、御年33歳。

気合でやるしかねー。

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!