shell芸

コメント

# ここはコメント

変数宣言

HOGE="aaa"

変数に計算結果展開とか

HOGE=$((60 * 60 * 24))
FUGA=$(find . -name *.java)

if

if [ -f test.txt ];then
    echo "test.txt存在"
fi
#「-e Liunx.txt」・・・Liunx.txtが存在しているか。
#「-f Liunx.txt」・・・Liunx.txtが存在し、通常のファイルであるか。
#「-r Liunx.txt」・・・Liunx.txtが存在し、読み取り可能であるか。
#「-s Liunx.txt」・・・Liunx.txtのファイルサイズが0でなければ真。

case

/etc/init.d/配下のスクリプトでよく使われているやつ

D=$(date "+%Y%m%d")
case "$D" in
    "20160530")
        echo "ビール"
        ;;
    "20160529")
        echo "ジュース"
        ;;
    *)
        echo "コーヒー"
        ;;
esac

for

for i in $(ls);do
    echo $i
done

FILES=`find . -name *.java -type f`
for FILE in $FILES;do
    echo $FILE
done

select

PS3="選択して:"
select SEL in apple banana grape exit;do
    case $SEL in
        apple|banana)
            echo "$SELECTEDが選択されました"
            ;;
        grape)
            echo "グレープ"
            ;;
        exit)
            echo "終了します"
            break
            ;;
        *)
            echo "1-4の番号で選んでください"
            ;;
    esac
done

関数

func(){
  echo $1 #引数一つ目
  echo $2 #引数二つ目
}
func "hoge" "fuga"

特殊変数

$0 # スクリプト名
$? # 最後の処理が成功したかどうか?
ls
if [ $? == 0 ];then
  echo "成功した"
fi

/dev/nullへ

ls > /dev/null 2>&1

とりあえず

これだけあれば戦える?