1. 変数
1. 変数の命名規則: 文字またはアンダースコアで始まり、その後に数字、文字、またはアンダースコアが続きます。ただし、変数名を見たときにその意味が推測できるようにすることをお勧めします。
2. 変数の割り当て echo ${egon_salary}yuan
20000yuan4. bash でデータ型を宣言する必要はありません。デフォルトは文字型2 です。算術演算子: + - * / %[root@bogon ~]# echo $[5%2]1
2. 代入演算子: =、+=、-=、*=、/=、%=
[root@bogon ~] # x=10
[root@bogon ~]# ((x+=1))[root@bogon ~]# echo $x
113. 関係演算子: <,>,!=,== ,>=,<= ,||,&&
関係演算子は、(( ))、[] とともによく使用されますが、同じ結果を得ることができますが、(( )) はファイルのタイプを決定できません。 []、[] を使用してファイルの種類を決定します。結果は、$? を使用してコマンドの実行結果を確認します。0 以外の場合は false を意味します。
[root@bogon ~]# x=10
[root@bogon ~]# ((x> =8))[root@bogon ~]# echo $?
0
4. シェル内の計算機
$[] を使用して簡単な操作を実行できると前に言いましたが、10 進数の操作が含まれる場合は、シェルで電卓を使用する必要があります
まず、ソフトウェアをインストールする必要があります。yum install -y bc
[ root@bogon ~]# res=$(echo 'scale=2;1/3' |bc -l |cut -d'.' -f2)
[root@bogon ~]# echo ${res}%33 %
5.test コマンド test
-d ファイルが存在し、ディレクトリファイル
int1 -gt int2 int1はint2より大きい int1 -ge int2 int1はint2以上 文字列の比較 str1 = str2 str1とstr2は等しい str1! =str2 str1 と str2 は等しくありません 式間の比較 式1 -a 式2 式1と式2は両方とも真です 式1 -o 式2 式1または式2は真です テスト例 6. test:
[root@bogon ~]# [[ 2 > 1 ]][root@bogon ~]# echo $?0 [root@bogon ~]# ((20>10))[root@bogon ~]# echo $?0 [root@bogon ~]# ((20<10))[root@bogon ~]# echo $?1
[root@bogon ~]# [ "abc" = "abc" ][root@bogon ~]# echo $?0 [root@bogon ~]# [[ "abc" = "abc" ]][root@bogon ~]# echo $?0 [root@bogon ~]# (("abc" = "abc"))[root@bogon ~]# echo $?1
[root@bogon ~]# [[ a = a && 1 < 2 ]][root@bogon ~]# echo $?0 [root@bogon ~]# [[ a = a && 1 < 2 ]][root@bogon ~]# echo $?0
[root@bogon ~]# (( a = a || 1 > 2 ))[root@bogon ~]# echo $?1[root@bogon ~]# [[ a = a || 1 > 2 ]][root@bogon ~]# echo $?0
3を使用します。プロセス制御
1) ユーザーアカウントパスワードの確認:
input your name : zhangcan input password : 123login successful [root@bogon ~]# ./usertest.sh input your name : hha input password : hag user or password error
#! /bin/bashuser='zhangcan'password='123'read -p 'input your name : ' name
read -p 'input password : ' codeif [ $name = $user -a $code = $password ];then
echo 'login successful'elseecho 'user or password error'fi~
#!/bin/bash #根据用户输入的成绩,判断所属档次,并输出给用户read -p 'input your score : ' scoreif [ $score -ge 90 ];then
echo '优秀'elif [ $score -ge 70 -a $score -lt 90 ];then
echo '良好'elif [ $score -ge 60 -a $score -lt 70 ];then
echo '及格'elif [ $score -lt 60 ];then
echo '较差'fi
do
Command done例: ユーザーが入力するファイルの種類を決定します#!/bin/bashwhile : do read -p 'input your file : ' fileif [ -z $file ];thencontinueelsebreakfi doneif [ -f $file ];then echo "$file is regular file"elif [ -b $file ];then echo "$file is block file"elif [ -d $file ];then echo "$file is directory file"elseecho "$file type unkonw"fi
#!/bin/bashfor i in {1..50} do ping -c1 192.168.16.$i &> /dev/null # -c1表示ping一次if [ $? -ne 0 ];then echo "192.168.16.$i successful"echo "192.168.16.$i" >> ~/ipavailable.txt fi done~
#!/bin/bashdir='/dev'for i in $(ls $dir) doif [ -h $dir/$i ];then ((link+=1))elif [ -f $dir/$i ];then (( rfile+=1))elif [ -d $dir/$i ];then ((directory+=1))elif [ -b $dir/$i ];then (( block+=1 ))else(( typeunknow+=1)) fi done echo 'block' $block echo 'regular file' $rfile echo 'directory' $directory echo 'link' $link echo 'unknow' $typeunknow
#!/bin/bashfor ((i=1;i<=9;i++)) dofor ((j=1;j<=i;j++)) do echo -n "$i*$j=$[$i*$j]"done echo done
#!/bin/bashuser='zhangcan'password='123'tag=truewhile $tag do read -p 'input your name : ' name read -p 'input your password : ' codeif [[ $name = $user ]] && [[ $code = $password ]];then echo 'login successful'while $tag do read -p '>>: ' cmdif [[ $cmd = 'quit' ]];then tag=falseelse$cmd fi done fi done
以上が基本的なシェル構文の紹介と使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。