ウェブサイト検索

Linux BASH スクリプトの世界を航海する - パート III


シェル スクリプト」シリーズのこれまでの記事は高く評価されたため、終わりのない学習プロセスを拡張するためにこの記事を書いています。

  1. 基本的な Linux シェル スクリプト言語のヒントを理解する – パート I
  2. 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)"

これはシンプルなスクリプトですが、動作はそれほど単純ではありません。

  1. echo‘ : 引用符内に書かれたすべてを出力します。
  2. $‘ : シェル変数です。
  3. >>‘ : 出力は、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 回、管理上の観点から幅広い視点から記事をまとめる予定です。

それは今のところすべてです。読者であり最高の批評家であるあなたは、この記事でどれだけ楽しんだか、そして今後の記事で何を期待しているかを忘れずに伝えてください。ご質問はコメントで大歓迎です。それまでは健康安全調整してください。 いいね共有して拡散にご協力ください。