Bashの基本文法の概要(パート1)

Bashの基本的な文法の概要

0X00序文

おそらく誰もがbashがLinuxの世界で最も一般的に使用されるシェルであることを知っているはずです。現在、ほとんどのLinuxディストリビューションはデフォルトでシェルとしてbashを使用しています。
ターミナルに入力できます。

echo $SHELL

シェルをチェックします。そして、シェルはによって変更することができますchsh 注文変更

chsh -s /bin/zsh

もちろん、シェルをzshに変更することを意味します。もちろん、このシェルがあり、
どのシェルが使用可能かわからないことが前提です。シンプルで、シェルリストはに保存されます/ etc / shells で、ただそれを猫にする

cat /etc/shells

さて、これらの基本は明確です、文法から始め
ましょうしかし、私がまだ説明する必要がある前に:
各シェルの文法は異なるかもしれませんが、基本的に同じです。bashを選択するのは、主に幅広い用途があるため、代表として使用されます。
ナンセンスな話をやめて始めましょう!

0X10シェルスクリプトファイルを作成する

シェルスクリプトの接尾辞は .sh、もちろん、新しいドキュメントを作成して名前を直接変更するだけです。
最初に最も簡単な例を挙げてください

#! /bin/bash
echo "Hello World"

とてもなじみがありますか、はははは、言語の標準が始まります

説明する これはbash言語のコメント記号であり、CまたはC ++のコメント記号と同等です。 //
しかし、最初の文 #!これらは相互に接続されており、シバンと呼ばれます。オペレーティングシステムがシバンを認識すると、次のコンテンツをインタプリタ命令として使用し、命令を呼び出します。この文は、スクリプトが使用していることを実際に教えてくれますbash 実行する場合、またはsh、zshなどの他のシェルを指定する場合、または指定しない場合でも、システムはデフォルトのシェルで実行されます。

実行方法を見てみましょう:
まず、通常のユーザーによって作成されているため、直接実行する場合はアクセス許可の制限がある可能性があります。実行アクセス許可を変更する必要があります。

chmod +x HelloWorld.sh

これで、このディレクトリで直接実行できます。

./HelloWorld.sh

ここに画像の説明を挿入

bash言語の0X10変数

プログラミング言語として、変数は不可欠であり、bashには変数を定義する独自の方法もあります。
しかし、C ++やJavaなどの言語と比較すると、bash変数には型がなく、直接定義できます(Pythonに少し似ています)

1.変数の定義

message='Hello World'

定義したい場合は定義でき、使用したい場合は使用できます

echo $message

注意が必要なときはカジュアルに見えますが、それほどカジュアルではありません。たとえば、変数を定義している場合は、中央にスペースを入力してみてください

message='Hello world'
message ='Hello world'
message = 'Hello world'

事実は、上記の3つがエラーを報告することを証明しています:
ここに画像の説明を挿入
なぜですか?実際、分離すると、bashはユーザーをコマンドとして扱うため、そのようなコマンドがないことを示すエラーを報告します。
だから、私はまだカジュアルすぎることはできません

2、
実際には変数表示は、すでに使用しています。つまり、$シンボルの使用は、以前と同じように望んでいました。

message='Hello World'
echo $message

このようにして、変数内の情報を抽出できます

しかし、私たちはそのような問題を見つけるでしょう

message="Hello World"
echo 'The message is $message'

ここに画像の説明を挿入
えっ、ダメ?実際、この場合は解析されません。
ただし、エコーを二重引用符で囲むだけで十分であることがわかります。

それで、bashの3種類の引用符について話します

3. 3種類の引用符
bashには、次の3種類の引用符があります。

の種類 手段
アポストロフィ '
二重引用符 「「
バックティック `

違い:

  • 一重引用符:変数が一重引用符で囲まれている場合、変数は解析されず、ドル記号($)がそのまま出力されます。
  • 二重引用符:二重引用符はほとんどの特殊文字を無視しますが、ドル記号($)、バッククォート( `)、バックスラッシュ(\)
    は含まれません。これらの3つの特殊文字は無視されません。ドル記号を無視しないということは、シェルが二重引用符で囲まれた変数名を置き換えることができることを意味します。
  • バッククォート:シェルに囲まれたコンテンツを実行するように要求する

たぶん、あなたはバックティックの使用について少し不明確です。例を見てみましょう:

#!/bin/bash
message=`pwd`
echo "You are in the directory $message"

メッセージは後ろかっこで囲まれているため、内容が実行されます。結果はどうなりますか?
ここに画像の説明を挿入
今理解してください、それでアンチブラケットは時々非常に役に立つことができます。

0X 20bash言語入力

1.読み取りを使用して入力します。
ちょうど今ehco出力を見たので、当然入力が必要です-read

直接的な例:

#!/bin/bash

read name
echo "Hello $name !"

実行:
ここに画像の説明を挿入
端末で最初に入力できるようになり、次に入力したコンテンツが変数名に保存されて表示されます。

シンプル!

readコマンドを使用して、一度に複数の変数に値を割り当てることもでき
ここに画像の説明を挿入
ますご覧のとおり、スペースは2つの変数の内容を区切ります。
ただし
、予想よりも多くのパラメーターを入力すると、最後のパラメーターが入力されます。パラメータは背後にあるすべてのコンテンツを変更します。
ここに画像の説明を挿入

2.-pを使用してプロンプトを出力します

ただし、スクリプトの対話性を向上させるために、いくつかのヒントを追加する必要がある場合があります。このとき、-pパラメーターを使用して

#!/bin/bash

read -p 'Please enter your name : ' name
echo "Hello $name !"

動作結果:
ここに画像の説明を挿入

3. -sを使用して入力を非表示
にします。パスワードを入力するときなど、入力を非表示にする必要がある場合があります。今回は-sパラメータを追加できます

#!/bin/bash

read -p 'Please enter your password :\n ' -s pass
echo -e "\nThe password is $pass !"

ここに画像の説明を挿入
上記では、echoに-eを追加して、解析記号(\ n)を機能させ、ラップに使用します。

0X 30bash言語での数学演算

ここでみんなに思い出させましょう:

Bashでは、すべての変数は文字列です!

それを見て、何人かの学生はもう一度尋ねなければなりません:
それは文字列なので、bashは数学演算を行うことができませんか?

これは良い質問です。プログラミング言語として、どうすれば数学演算を減らすことができるでしょうか。

しかし、Bash自体は数値を操作しません。一連の操作を実行するには、命令を使用する必要があります

この命令はlet、割り当てに使用されます

例えば:

Let“ a = 5”
let“ b = 2”
let“ c = a + b”

波をデモンストレーションしましょう:

#! /bin/bash

let "a=5"
let "b=2"
let "c=a+b"

echo "c=$c"

結果は次のとおりです。
ここに画像の説明を挿入
はい、計算は完了です。

使用可能な演算子は次のとおりです。

計算 シンボル
添加 +
減算 -
乗算 *
分割 /
パワー(パワー) ****
剰余(整数除算の剰余)

パワー(パワー)が少し特別である(2つのアスタリスクを使用する)ことを除いて、**他のすべては一般的なプログラミング言語に似ています。

上記の例:

let“ a = 5 * 3”#$ a = 15
let“ a = 4 ** 2”#$ a = 16(4的不)
let“ a = 8/2 ”#$ a = 4
let“ a = 10 / 3”#$ a = 3
let“ a = 10%3”#$ a = 1

Cスタイルに非常に似ている別のルールがあります:
let "a *= 3"
はい、それはと同等ですlet "a = a * 3"

———————— I ——————————————ポイント————————カット————————ライン————————
了解しました。今日初めてこれについて説明します。残りは次のパートで説明します。
リンクもここにありますサポートしていただければ幸いです
〜Bashの基本構文の概要(パート2 )

- - - - 参照 - - - - - - - - - - - - - - - - - - - - - -
Linuxのコマンドラインやシェルスクリプトは、シェルの心配を手に百科事典/ 42変数をプログラミングしません

おすすめ

転載: blog.csdn.net/rjszz1314/article/details/104466193
おすすめ