序文
Android開発者は、ほとんどの時間を上位レベルのコードの記述と学習に費やす可能性があります。オペレーティングシステム、ネットワーク、データ構造とアルゴリズム、設計パターンなどの基本的なことについてあまり知らない可能性があるため、準備をすることができます。基本シリーズ個人的な経験から始めて、仕事にとってより重要で役立つと思ういくつかの基本的な知識のポイントを整理します。それらは網羅的ではありませんが、重要な常識を含めるように努めています。これは共有だけでなく、個人学習の記録と要約。
Linux学習ルート
(このロードマップは、私自身の経験と現実にのみ基づいています。私は、平時に知識を使用でき、理解する必要があると個人的に感じています。記憶の突破口に焦点を当てている限り、包括的になりたくありません。)
1.シェルスクリプトとは
シェルスクリプトは、Windowsのバッチ処理コマンドと同じです。シェルスクリプトは、シェル関数を使用してシェルコマンドを組み合わせると同時に、判断とループ条件ステートメントを使用して判断を実行し、いくつかの複雑な機能を実現するプログラムです。これと通常のJavaおよびC ++プログラミング言語の違いは何だと言う人もいますか?実際、違いはありませんが、シェルスクリプトを使用することで、より普遍的なコンパイル環境を構築する必要はありませんが、関数はjavaやc ++などの高級言語よりも比較的劣っています。
2.基本的なスクリプト構造
言語を学ぶための最も基本的な方法はhelloworldです。ここでは、この例もエントリポイントとして使用します。test.shスクリプトを見てください。
#!/bin/bash
#这是个demo
echo -e "Hello World!\n"
exit 0
最初の行#!/ bin / bashは、スクリプトで使用されるシェル名を宣言し、この行は、このファイルの構文がbash構文を使用することを宣言するために使用されます。
2行目#thisは、#がコメントを表すデモです。
3行目のecho-e "Hello World!\ n"はシェルコマンドであり、HelloWorldが画面に出力されます。
4行目のexit0は、シェルスクリプトの実行結果を通知するために使用されます。これは、C ++のメイン関数に少し似ており、最後にint型の戻り値があり、エラーメッセージをマークできます。戻り値は、スクリプトの実行後に$?を介して取得できます。上記のスクリプトの実行後、コマンドラインでecho $?と入力します。0が返されることがわかります。
3.基本的な文法
実際、どの言語でも始めるためのルーチンがいくつかあります。最も基本的な文法は、変数の定義方法、条件ステートメントとループステートメントの記述、および関数の定義です。これらは最も基本的で、シェルの記述です。スクリプトの文法も同じです。ルーチン。
1.変数
1.1カスタム変数
スクリプト内のカスタム変数は比較的単純です。コードを見てください
#!/bin/bash
#定义变量
HELLO="hello"
echo -e "Hello World!\n"
echo $HELLO
exit 0
変数HELLOが定義されており、その値は「hello」です。変数を参照する場合は、$ variable名から取得されます。
1.2呼び出しスクリプトは、渡されたパラメータ変数です
シェルスクリプトを呼び出すときに、いくつかのパラメーターを渡してシェルスクリプトを入力できます。最初にシェルスクリプトを変更しましょう
#!/bin/bash
#这是个demo
echo -e "传入的参数个数 $# \n"
echo -e "传入的参数是$@ \n"
echo -e "第0个参数是$0 \n"
echo -e "第一个参数是$1 \n"
exit 0
script./test.sh 1 2 3を呼び出すと、出力結果は次のようになります。
3で渡されたパラメーターの数
入力パラメータは123です。
0番目のパラメーターは./test.shです。
最初のパラメータは1です
$#は、シェルスクリプトファイルに続くパラメータの数を表します。123には3つのパラメータがあるため、出力は3です。
$ @はすべての入力パラメータを取得できます
$ 0はシェルファイル名を表します
$ 1 $ 2 $ 3 ...対応する123を順番に取得できます。これは、各パラメーターをスペースで区切るために使用されます。
2.条件文
2.1ifステートメント
ifステートメントが一般的な判断ステートメントである場合、基本的な構文は次のとおりです。
#!/bin/bash
#这是个demo
# if [ ];then
# 语句
# elif [ ];then
# 语句
# else
# 语句
# fi
if [ $1 == 1 ];then
echo -e hello one
elif [ $1 == 2 ];then
echo hello two
else
echo hello three
fi
ここで注意する必要があるのはスペースです。スペースの場合[スペース$ 1スペース==スペース1スペース];基本的にifと判断記号([])の間と判断記号の間にスペースがあるので、お見逃しなく。
2.2case ... esacステートメント
これは、高級言語のswitchcaseステートメントに似ています。
#!/bin/bash
#这是个demo
# case $变量名称 in
# 值1)
# 语句
# ;;
# 值2)
# 语句
# ;;
# *)
# 语句
# ;;
# esac
case $1 in
1)
echo one
;;
2)
echo two
;;
*)
echo three
;;
esac
注意すべき点の1つは*)java swtichのデフォルトと同様に、任意の値に一致する可能性があります。
3.ループステートメント
3.1完了するまで実行する
その中で、wileは条件が満たされたときを表し、ループが実行され、条件が満たされないまで停止しません。そして、whileの反対になるまでは、条件が満たされるとループが終了することを意味します。
#!/bin/bash
#这是个demo
# while [ condition ]
# do
# 程序段落
# done
# until [ condition ]
# do
# 程序段落
# done
Num=$1
while [ $Num != 3 ]
do
echo $Num
((Num=Num+1))
done
echo 3
exit 0
3.2forループ
forループを書くには2つの方法があります。1つ目は次のとおりです。
#!/bin/bash
#这是个demo
# for var in con1 con2 con3
# do
# 程序段
# done
for var in 1 2 3
do
echo $var
done
二番目
#!/bin/bash
#这是个demo
# for (( 初始值; 限制值; 步长))
# do
# 程序语段
# done
for (( i=1; i<3; i++))
do
echo $i
done
4.機能
#!/bin/bash
#这是个demo
# function fname(){
# 程序段
# }
function print(){
echo "paramer 1 is $1 2 is $2"
}
print a b
関数には$ 1と$ 2の変数があることがわかります。これらの変数は、前に定義したスクリプトを呼び出すために渡されるパラメーター変数とは異なります。ここで、$ 1と$ 2は、渡される必要のある渡されたパラメーターを表します。関数を呼び出すとき。パラメーターを入力するときは、パラメーター名のスペースの直後にスペースで区切って渡してください。
4.リファレンス
「バードブラザーズLinuxプライベートキッチン」
私の公開アカウントに従ってください