shellプログラミング受講ノート
1.先頭:
#!/bin/bash
2.実行可能:chmode+x filename
3.コメント:#
4.変数の使用:
混同を防止${a}
デフォルト変数:
$#:入力スクリプトのコマンドラインパラメータの数
$*:すべてのコマンドラインパラメータ値
$0:コマンド自体
$1:最初のコマンドラインパラメータ
$2:2番目のコマンドラインパラメータ
ローカル変数
5.if文
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:
例:
while:
until:
8.分岐文:
case:
例:
#!/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