shellプログラミング受講ノート


1.先頭:
#!/bin/bash
2.実行可能:chmode+x filename
3.コメント:#
4.変数の使用:
set variable a 
a="hello" 
echo $a 

混同を防止${a}
デフォルト変数:
$#:入力スクリプトのコマンドラインパラメータの数
$*:すべてのコマンドラインパラメータ値
$0:コマンド自体
$1:最初のコマンドラインパラメータ
$2:2番目のコマンドラインパラメータ
ローカル変数
hello="var1" 
echo $hello 
function func1{ 
    local hello="var2" 
    echo $hello 
} 
func1 
echo $hello

 
5.if文
if [ expression ] 
then 
    #code block 
else 
    #code block
 fi 

 
if [ expression ] ; then 
    #code block 
elif [ expression ]
    then 
        #code block 
    else 
        #code block
    fi
fi 

 
6.比較:
整数比較:-eq-ne-gt-lt-ge-le
文字列比較:=!=  >   <  >= <= -z(空)-n(空ではない)
ファイルの比較:
-eファイルは既に存在します
-fファイルは通常ファイル
-sファイルサイズがゼロでない
-dファイルはディレクトリです
-r読み取り可能
-w書き込み可能
-x実行可能
例:
$folder=/home
[ -r "$folder"] && echo "can read $folder"
注意:
[和]左右にスペースが残っている
=左右にスペースがある
[ expression ] && codeは真の実行codeである
[ expression ] || codeは偽実行codeである
 
7.サイクル
for: 
for var in [list] 
do 
    #code block 
done 

#   
for var in [list]; do #     
     #code block 
done

  例:
#!/bin/bash 
for day in Sun Mon Tue Wed Thu Fri Sat 
do 
    echo $day 
done


  while:
while [ condtion ] #      
do 
     #code block 
done

 
 until:
until [ condtion ] #      
do 
    #code block 
done


 
8.分岐文:
case:
case "$var" in 
    condition 1) 
         ;; 
    condition 2) 
        ;;
    *) 
        default statments;;
esca

 
例:
  #!/bin/bash 
read Keypres 
case "$Keypress" 
   in [A-Z]) 
       echo "Uppercase letter";; 
   [a-z]) 
      echo "Lowercase letter";; 
    *) 
      echo "Other";; 
esca