Linux BASH スクリプトの世界を航海する - パート III
「シェル スクリプト」シリーズのこれまでの記事は高く評価されたため、終わりのない学習プロセスを拡張するためにこの記事を書いています。
- 基本的な Linux シェル スクリプト言語のヒントを理解する – パート I
- Linux 初心者がシェル プログラミングを学ぶための 5 つのシェル スクリプト – パート II
バッシュのキーワード
キーワードは、コンピュータ言語にとって特別な意味を持つ単語または記号です。次の記号と単語は、引用符で囲まれていない場合、およびコマンドの最初の単語である場合にバッシュするための特別な意味を持ちます。
! esac select }
case fi then [[
do for until ]]
done function while elif
if time else in {
ほとんどのコンピュータ言語とは異なり、Bash では、スクリプトが読みにくくなる可能性がありますが、 キーワードを変数名として使用できます。スクリプトを理解しやすくするために、変数名にキーワードを使用しないでください。
コマンドはシェルに $(command) として実装されます。コマンドのフルパスを含める必要がある場合があります。例: 正しく実行するには、$ (/bin/date) を使用します。
「whereis」コマンドを使用すると、特定のプログラムのパスがわかる場合があります。例: 日付はどこですか
[root@tecmint /]# whereis date
date: /bin/date /usr/share/man/man1/date.1.gz
今のところはそれで十分です。これらの理論については今は多くを話しません。スクリプトに来ています。
現在の作業ディレクトリを移動する
実行中にスクリプトの最後に数値を指定するだけで、現在の作業ディレクトリから任意のレベルに移動します。
#! /bin/bash
LEVEL=$1
for ((i = 1; i <= LEVEL; i++))
do
CDIR=../$CDIR
done
cd $CDIR
echo "You are in: "$PWD
exec /bin/bash
上記のコードをデスクトップに「up.sh」という名前で保存します。実行可能にします (chmod 755 up.sh)。走る:
./up.sh 2 (現在の作業ディレクトリを 2 つ上のレベルに移動します)。
./up.sh 4 (現在の作業ディレクトリを 4 つ上のレベルに移動します)。
用途と応用分野
フォルダー内にフォルダーが含まれる大きなスクリプトでは… さまざまな場所にライブラリ、バイナリ、アイコン、実行可能ファイルなどが含まれます。開発者はこのスクリプトを実装して、非常に自動化された方法で目的の場所に移動できます。
注: 上記のスクリプトの For はループであり、ループの値が true になるまで実行され続けます。
サンプル出力
[root@tecmint /]# chmod 755 up
[root@tecmint /]# ./up.sh 2
You are in: /
[root@tecmint /]# ./up.sh 4
You are in: /
[root@tecmint /]#
up.shをダウンロード
ランダムなファイルまたはフォルダーを作成する
重複のないランダムなファイル(フォルダー)を作成します。
#! /bin/bash
echo "Hello $USER";
echo "$(uptime)" >> "$(date)".txt
echo "Your File is being saved to $(pwd)"
これはシンプルなスクリプトですが、動作はそれほど単純ではありません。
- ‘echo‘ : 引用符内に書かれたすべてを出力します。
- ‘$‘ : シェル変数です。
- ‘>>‘ : 出力は、txt 拡張子が後に続く date コマンドの出力にリダイレクトされます。
date コマンドの出力は 日付と時間、分の時刻であることがわかります。 2 番目と年。したがって、ファイル名が重複することなく、整理されたファイル名で出力を取得できます。ユーザーが今後の参照のためにタイムスタンプで作成されたファイルが必要な場合に非常に便利です。
サンプル出力
[root@tecmint /]# ./randomfile.sh
Hello server
Your File is being saved to /home/server/Desktop
デスクトップ上に作成されたファイルを今日の日付と現在時刻とともに表示できます。
[root@tecmint /]# nano Sat\ Jul\ 20\ 13\:51\:52\ IST\ 2013.txt
13:51:52 up 3:54, 1 user, load average: 0.09, 0.12, 0.08
上記のスクリプトのより詳細な実装を以下に示します。これは上記の原則に基づいて動作し、Linux サーバーのネットワーク情報を収集するのに非常に役立ちます。
ランダムファイル.shをダウンロード
ネットワーク情報を収集するスクリプト
Linux サーバー上のネットワーク情報を収集します。スクリプトが大きすぎるため、コード全体とスクリプトの出力をここに投稿することはできません。したがって、以下のダウンロード リンクを使用してスクリプトをダウンロードし、自分でテストすることをお勧めします。
注: lsb-core パッケージとその他の必要なパッケージおよび依存関係のインストールが必要になる場合があります。必要なパッケージを適切またはヤムします。ここで使用されるコマンドのほとんどはrootとして実行されるように設定されているため、明らかに、 スクリプトを実行するにはrootになる必要があります。
サンプル出力
[root@tecmint /]# ./collectnetworkinfo.sh
The Network Configuration Info Written To network.20-07-13.info.txt. Please email this file to your_name@service_provider.com. ktop
スクリプト内で上記の電子メール アドレスを変更すると、メールで送信されるようになります。自動生成されたファイルを閲覧することができます。
コレクトネットワーク情報.shをダウンロード
大文字を小文字に変換するスクリプト
大文字を小文字に変換し、出力をテキスト ファイル「small.txt」にリダイレクトするスクリプト。必要に応じて変更できます。
#!/bin/bash
echo -n "Enter File Name : "
read fileName
if [ ! -f $fileName ]; then
echo "Filename $fileName does not exists"
exit 1
fi
tr '[A-Z]' '[a-z]' < $fileName >> small.txt
上記のスクリプトは、わずかな変更を加えるだけで、任意の長さのファイルの大文字と小文字を 1 回のクリックで大文字から小文字に変換したり、必要に応じてその逆に変換したりできます。
サンプル出力
[root@tecmint /]# ./convertlowercase.sh
Enter File Name : a.txt
Initial File:
A
B
C
D
E
F
G
H
I
J
K
...
新しいファイル (small.txt) 出力:
a
b
c
d
e
f
g
h
i
j
k
...
ConvertLowercase.shをダウンロード
簡単な計算プログラム
#! /bin/bash
clear
sum=0
i="y"
echo " Enter one no."
read n1
echo "Enter second no."
read n2
while [ $i = "y" ]
do
echo "1.Addition"
echo "2.Subtraction"
echo "3.Multiplication"
echo "4.Division"
echo "Enter your choice"
read ch
case $ch in
1)sum=`expr $n1 + $n2`
echo "Sum ="$sum;;
2)sum=`expr $n1 - $n2`
echo "Sub = "$sum;;
3)sum=`expr $n1 \* $n2`
echo "Mul = "$sum;;
4)sum=`expr $n1 / $n2`
echo "Div = "$sum;;
*)echo "Invalid choice";;
esac
echo "Do u want to continue (y/n)) ?"
read i
if [ $i != "y" ]
then
exit
fi
done
サンプル出力
[root@tecmint /]# ./simplecalc.sh
Enter one no.
12
Enter second no.
14
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
1
Sum =26
Do u want to continue (y/n)) ?
y
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
3
mul = 14812
Do u want to continue (y/n)) ?
n
simplecalc.shをダウンロード
このような単純な方法で、計算として強力なプログラムを作成することがいかに簡単であるかがわかりましたか。それは終わりではありません。このシリーズは少なくともあと 1 回、管理上の観点から幅広い視点から記事をまとめる予定です。
それは今のところすべてです。読者であり最高の批評家であるあなたは、この記事でどれだけ楽しんだか、そして今後の記事で何を期待しているかを忘れずに伝えてください。ご質問はコメントで大歓迎です。それまでは健康で安全に調整してください。 いいねと共有して拡散にご協力ください。